且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Spark RDD概念学习系列之RDD的创建(六)

更新时间:2022-08-15 10:05:40

RDD的创建

 

   两种方式来创建RDD:

    1)由一个已经存在的Scala集合创建

    2)由外部存储系统的数据集创建,包括本地文件系统,还有所有Hadoop支持的数据集,比如HDFS、Cassandra、HBase、Amazon S3等。

    RDD只能基于在稳定物理存储中的数据集和其他已有的RDD上执行确定性操作来创建。这些确定性操作称为转换,如map、filter、groupBy、join。

 

  第1个RDD:代表了spark应用程序输入数据的来源,通过Transformation来对RDD进行各种算子的转换和实现算法。

  初始RDD(或第1个RDD)创建的几个方式:(有300多种)

    1、  使用程序中的集合创建RDD;     意义是:测试

    2、  使用本地文件系统创建RDD;     意义是:测试大量数据的文件

    3、  使用HDFS创建RDD;            意义是:生产环境里最常用

    4、  基于DB创建RDD;

    5、  基于NoSQL,例如HBase

    6、  基于S3创建RDD;

    7、  基于数据流创建RDD;

  以上是典型的7种,我们这里重点讲解前3种方式。

 

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

 Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

 

SparkContext.scala里,   SparkContext.createTaskScheduler,进入该方法

 Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

 

我们进一步,来学习

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

原来如此,所以是32。

 

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

以上是并行度,默认为1。

会利用最大,即32 = 8 X 4台worker

 

 

现在,我们来采取并行度为10,来玩玩。

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

问:实际上spark的并行度到底应该设置为多少呢?

答:***是,2-4 partitions for each CPU core。

如我们这里的CPU core是32个。每个worker给的是8个。共4台机器。

 

32 X 2 =64   32 X 4 = 128   即64~128之间。

 

说明的是,跟数据规模没关系,只跟每个task在计算partitions时的CPU使用时间和内存使用情况有关。

 

oom是内存溢出。

 

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

 

 

RDDBaseedOnLocalFile.scala

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

 

假如,计算每行的长度总和

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

好的,关于此处的源码解读,自行去深究。不多赘述。

 

 

 

以上是在local模式下,下面开始

集群模式

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

Spark RDD概念学习系列之RDD的创建(六)

 

 


本文转自大数据躺过的坑博客园博客,原文链接:http://www.cnblogs.com/zlslch/p/5723747.html,如需转载请自行联系原作者