block,inputsplit,partion,task,excutor,stage,job,driver关系

一,block
block是hdfs文件的切块,Hadoop2以后块大小默认为128M
二,inputsplit
inputsplit指的是MapReduce中的map阶段的输入数据块,默认情况下,例如文件在hdfs上有3个切块,就会有3个inputsplit,就会起3个map任务.
但是inputsplit的数量是可以配置的

--minsize   默认大小为1
mapreduce.input.fileinputformat.split.minsize  
注:minsize应该设置成128的倍数,目的是便于数据处理,不然块还得切分(自己理解,没有具体依据)

--maxsize   默认大小为Long.MAXValue 
mapreduce.input.fileinputformat.split.maxsize

在mapreduce的FileInputFormat类中有个getSplits() 方法对文件进行split,算法如下:

Math.max(minSize, Math.min(maxSize, blockSize));

1.如果blockSize小于maxSize && blockSize 大于 minSize之间,那么split就是blockSize;

2.如果blockSize小于maxSize && blockSize 小于 minSize之间,那么split就是minSize;

3.如果blockSize大于maxSize && blockSize 大于 minSize之间,那么split就是maxSize;

maptask和reducetask个数设定:

列表内容
1.在hadoop中一个split对应一个maptask,需要改变map任务的个数就需要改变上面所描述的配置。

2.而reducetask的个数又可以自己设定

job.setNumReduceTasks(10);

三,partion
partion是spark中的概念,类似MapReduce中的inputsplit
有多少partion就会启动多少task

四,executor
启动多少task就会启动多少executor
注意:比如启动3个executor有可能在一计算节点(worker)上,也可能在两个计算节点(worker)上,也可能均分在三个计算节点(worker)上,这个与计算资源有关,executor与计算节点并无直接联系

五,executor核个数
executor核个数类似芯片中的核个数,executor核个数是虚拟的,却是基于真实CPU核个数的,比如8核cpu服务器,就可以设置executor核个数在1~8之间,该参数的设置类似线程的概念,如果把task理解成进程的话.核之间可以并行处理数据.

六,stage
stage是根据dag图来划分的,在dag图shuffle的地方(即是否会进行落地操作来判断)进行切分形成stage,碰到宽依赖就会形成shuffle.stage数量与task数量并无直接联系!!!!!在一个stage当中可以有很多个task,而且不确定个数.stage往往包含一个stageset,一个stage集合.
注意:当运行完一个stage的时候必须等待,等待其他task也运行到该处才进行下一个stage

七,job
job是根据是否有actions来划分的
注意action和shuffle(落地)不是一个概念
Transformation/Actions
Transformation返回值还是一个RDD,例如:map、filter、flatMap、reduceByKey等
Action返回值不是一个RDD,要么是一个Scala的普通集合,要么是一个值,要么是空,最终或返回到Driver程序,或把RDD写入到文件系统中。例如:collect、count等。
注意:action包含落地操作,很容易和shuffle混为一谈

八,driver
运行的XXX.jar就是一个application
driver(驱动程序)就是执行了一个Spark Application的main函数和创建Spark Context的进程,它包含了这个application的全部代码。
如果以yarn方式提交,driver会出现在两种不同的位置,yarn-client形式,driver就在运行代码的那个节点上,yarn-cluster形式,driver会随机的在计算节点上创建.
driver的功能类似MapReduce中的ApplicationMaster,负责协调,管理,以及资源分配.

猜你喜欢

转载自blog.csdn.net/u010916338/article/details/80949525