31、RDD的优势
1、高效的容错机制
2、结点落后问题的缓和 (mitigate straggler) :
3、批量操作:
4、优雅降级 (degrade gracefully)
32、如何获取RDD
1、从共享的文件系统获取,(如:HDFS)
2、通过已存在的RDD转换
3、将已存在scala集合(只要是Seq对象)并行化 ,通过调用SparkContext的parallelize方法实现
4、改变现有RDD的之久性;RDD是懒散,短暂的。
33、RDD都需要包含以下四个部分
a.源数据分割后的数据块,源代码中的splits变量
b.关于“血统”的信息,源码中的dependencies变量
c.一个计算函数(该RDD如何通过父RDD计算得到),源码中的iterator(split)和compute函数
d.一些关于如何分块和数据存放位置的元信息,如源码中的partitioner和preferredLocations
34、在RDD中将依赖划分成了两种类型:
窄依赖(narrowdependencies)和宽依赖(widedependencies)。窄依赖是指父RDD的每个分区都只被子RDD的一个分区所使用。相应的,那么宽依赖就是指父RDD的分区被多个子RDD的分区所依赖。例如,map就是一种窄依赖,而join则会导致宽依赖
依赖关系分类的特性:
第一,窄依赖可以在某个计算节点上直接通过计算父RDD的某块数据计算得到子RDD对应的某块数据;
第二,数据丢失时,对于窄依赖只需要重新计算丢失的那一块数据来恢复;
35、数据分析常见模式:
1、Iterative Algorithms,
2、Relational Queries,
3、MapReduce,
4、Stream Processing,
36、Spark Streaming的基本原理是将输入数据流以时间片(秒级)为单位进行拆分,然后以类似批处理的方式处理每个时间片数据