Spark相关术语
RDD
全称为ResilientDistributedDataset,弹性分布式数据集。
就是分布在集群节点上的数据集,这些集合可以用来进行各种操作,能实现MapReduce不擅长的计算工作(比如迭代式、交互式和流式)。最重要的一点是,某个操作计算后的数据集可以缓存在内存中,然后给其他计算使用,这种在迭代计算中很常见。
原始的RDD经过一系列转化后,会在最后的RDD上触发一个动作,这个动作会生成一个Job。Job被划分为不同的阶段,每个阶段有一批计算任务(Task)组成,这批Task会被集群提交到集群上的计算节点去计算。
Iterator
迭代器,即是提供一级接口给其他人来访问RDD中的数据集。
如下代码中的t所示:
RDD.mapPartitions((t: Iterator[(ImmutableBytesWritable, org.apache.hadoop.hbase.client.Result)])=>{相关操作}
Job
一道作业,即指应用完成某项需求所需要一系列工作,统一称为作业。
DAG
有向无环图,将作业分解成若干个阶段,每个阶段都是由若干个task组成,而这些阶段都是有先后顺序的,故将这些阶段组织成DAG,来表示其先后顺序。
Stage
阶段,是指job中的一个结点。
Taskset
每个阶段将由若干个task组成,这些task统一称为taskset。
Task
Task是指最终在slave结点上运行的工作。
[size=large]如下图所示:
与MR的区别
MR的缺点:
1.Shuffle的性能。Map到reduce之间数据多次需要IO操作。
2.当有多个MR时,每轮的MR之间需要将结果写到hdfs上。
3.只有map,reduce二种计算模型,无法建立一组DAG操作,来减少中间的一些操作开销。
以上的缺点都是spark的优点。
相关推荐
86417413 2020-11-25
simonzhao0 2020-11-23
rise 2020-11-22
wfs 2020-10-29
projava 2020-11-14
aydh 2020-11-12
huimeiad 2020-11-23
NANGEBOKE 2020-11-23
wuguangbin0 2020-11-17
skyplay0 2020-11-17
魅惑青花瓷 2020-11-11
Freshairx 2020-11-10
applecarelte 2020-10-16
链块学院 2020-11-06
TaoTaoFu 2020-11-06
不知道该写啥QAQ 2020-11-12