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

简介:

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种方式。

 

 

 

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

 

 

我们进一步,来学习

原来如此,所以是32。

 

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

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

 

 

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

问:实际上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是内存溢出。

 

 

 

RDDBaseedOnLocalFile.scala

 

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

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

 

 

 

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

集群模式

 

 


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

相关文章
|
2天前
|
分布式计算 API Spark
Spark学习--day05、SparkCore电商网站实操、SparkCore-工程代码
Spark学习--day05、SparkCore电商网站实操、SparkCore-工程代码
70 11
|
2天前
|
分布式计算 Java Scala
Spark学习---day03、Spark核心编程(RDD概述、RDD编程(创建、分区规则、转换算子、Action算子))(二)
Spark学习---day03、Spark核心编程(RDD概述、RDD编程(创建、分区规则、转换算子、Action算子))(二)
|
2天前
|
SQL 分布式计算 Java
Spark学习---SparkSQL(概述、编程、数据的加载和保存、自定义UDFA、项目实战)
Spark学习---SparkSQL(概述、编程、数据的加载和保存、自定义UDFA、项目实战)
142 1
|
2天前
|
分布式计算 Spark 索引
Spark学习---day07、Spark内核(Shuffle、任务执行)
Spark学习---day07、Spark内核(源码提交流程、任务执行)
|
2天前
|
分布式计算 监控 Java
Spark学习---day06、Spark内核(源码提交流程、任务执行)
Spark学习---day06、Spark内核(源码提交流程、任务执行)
|
2天前
|
分布式计算 Spark
Spark【Spark学习大纲】简介+生态+RDD+安装+使用(xmind分享)
【2月更文挑战第14天】Spark【Spark学习大纲】简介+生态+RDD+安装+使用(xmind分享)
34 1
|
2天前
|
分布式计算 Hadoop Java
Spark【基础知识 03】【RDD常用算子详解】(图片来源于网络)
【2月更文挑战第14天】Spark【基础知识 03】【RDD常用算子详解】(图片来源于网络)
60 1
|
2天前
|
分布式计算 Spark
Spark学习--day05、累加器
Spark学习--day05、累加器
|
2天前
|
存储 缓存 分布式计算
Spark学习--day04、RDD依赖关系、RDD持久化、RDD分区器、RDD文件读取与保存
Spark学习--day04、RDD依赖关系、RDD持久化、RDD分区器、RDD文件读取与保存
|
2天前
|
存储 缓存 分布式计算
Spark RDD持久化与缓存:提高性能的关键
Spark RDD持久化与缓存:提高性能的关键