Spark的相关名词有时候学着学着会弄混,就趁着这次自己总结一次,也许不是很好,但不能因此就放弃不写;
Driver
提交Spark Application(应用)的机器。有些算子操作也需要对Driver端操作,如使用collect, show等算子,需要汇集到Driver端,对Driver的计算性能,内存都有一定要求。
Worker
计算节点(机器),该机器用于计算Application代码。
Executor
- executor-num 数量
- executor-core 每个executor分配的虚拟计算核数
-
executor-memory 每个executor分配的内存
Executor是Worker节点上用于计算的进程,每个executor进程有多个task,多个task以多线程形式运行。
该图片非原创
Spark会分析Application的计算逻辑,并作出计划(就是常说的DAG有向无环图),并把任务拆分成多个Job(任务),再将每个Job划分成多个Stage(阶段),每个Stage又划分成多个task
Job
spark应用中有多个action操作,每个action会触发RunJob操作,也就是每个action操作就出现一个job
Stage
spark将一个个的job又拆分个多个stage,而拆分stage的依据则是,是否产生shuffle操作进行划分
Task
worker下有多个executor进程,executor下有多个task,task以多线程形式运行。
- 在普通的RDD计算操作时,RDD有多少个Partition就有多少个task计算
- 在读取HDFS文件时,task数目默认以文件所占的Block数目
Partition
patition就是分区,将数据集RDD分成多个partition分区,计算时就会分成对应数量的task,多个task将并行计算。在资源足够的前提下,且暂不考虑分布式时的网络传输速率,task越多,并行度越大,计算速度越快。所以提高patition通常也就是我们常说的增加并行度的方式。
如果喜欢这篇文章的话可以帮忙点个赞吗?这对我真的很重要!!
网友评论