Spark简介
- 菜鸟
- 弹性分布式数据集 (RDDs)
- 参考
-
Spark通过两种方式使用Hadoop:一种是存储,另一种是处理。由于Spark具有自己的集群管理计算,因此仅将Hadoop用于存储目的。
-
Spark 的关键思想是- [Resilient Distributed Datasets(RDD 弹性分布式数据集)];它支持内存中处理计算。这意味着,它将内存状态存储为跨作业的对象,并且该对象可在这些作业之间共享。内存中的数据共享比网络和磁盘快10到100倍。
-
弹性分布式数据集(RDD)是Spark的基本数据结构。它是对象的不可变分布式集合。RDD中的每个数据集都分为逻辑分区,可以在群集的不同节点上进行计算。RDD可以包含任何类型的Python,Java或Scala对象,包括用户定义的类。
-
它将中间结果存储在分布式内存中,而不是稳定存储(磁盘)中,并使系统运行更快。
-
Spark使用称为RDD(弹性分布式数据集)的专用基础数据结构,该结构是跨机器分区的逻辑数据集合。RDD可以通过两种方式创建:一种是通过引用外部存储系统中的数据集,第二种是通过对现有RDD进行转换(例如,映射,过滤器,化简,联接)。
RDD抽象是通过语言集成的API公开的。这简化了编程的复杂性,因为应用程序处理RDD的方式类似于处理本地数据集合。
菜鸟
-
Spark是个通用的集群计算框架,通过将大量数据集计算任务分配到多台计算机上,提供高效内存计算。通过一个称作弹性分布式数据集(resilient distributed datasets, RDDs)的分布式数据框架进行的。
-
本质上,RDD是种编程抽象,代表可以跨机器进行分割的只读对象集合。
-
本质上,Spark应用作为独立的进程运行,由驱动程序中的SparkContext协调。这个context将会连接到一些集群管理者(如YARN),这些管理者分配系统资源。集群上的每个worker由执行者(executor)管理,执行者反过来由SparkContext管理。执行者管理计算、存储,还有每台机器上的缓存。
-
Spark不能解决分布式存储问题(通常Spark从HDFS中获取数据),但是它为分布式计算提供了丰富的函数式编程API。这个框架建立在伸缩分布式数据集(RDD)之上。RDD是种编程抽象,代表被分区的对象集合,允许进行分布式操作。RDD有容错能力(可伸缩的部分),更重要的时,可以存储到节点上的worker内存里进行立即重用。内存存储提供了快速和简单表示的迭代算法,以及实时交互分析。
-
Spark 的主要抽象是提供一个弹性分布式数据集(RDD),RDD 是指能横跨集群所有节点进行并行计算的分区元素集合。
-
Spark 的第二个抽象是共享变量(shared variables),共享变量能被运行在并行计算中。
弹性分布式数据集 (RDDs)
Spark 核心的概念是 Resilient Distributed Dataset (RDD):一个可并行操作的有容错机制的数据集合。有 2 种方式创建 RDDs:第一种是在你的驱动程序中并行化一个已经存在的集合;另外一种是引用一个外部存储系统的数据集,例如共享的文件系统,HDFS,HBase或其他 Hadoop 数据格式的数据源。
参考
- https://www.cainiaoya.com/spark/spark-core-program.html
- https://www.w3cschool.cn/spark/spark-quickstart.html