spark几个名词
1 job,一个action操作触发一个job
action的一些操作http://spark.apache.org/docs/latest/programming-guide.html#actions
2 stage划分
1)有shuffle操作,则shuffle之前为一个 stage
2)数据落地输出则为一个 stage
3 Task为具体的任务执行单位,个人理解为一个线程,Task的划分取决于几个方面
1) 分配的cpu数目和cpu的核数,cpu数目*cpu的核数则为总得任务数量。
2)总分区数量Partition
如果1中的数量小于2中的数量则为1的任务数,否则为2中的分区数量,即Partition数量决定执行的并发数。
如果元数据分区太少,可以重新分区,否则不会有并发。
4 worker个人理解为工作的机器数量,Worker Node就是物理节点。
5 Executor,为worker机器上cpu的数量,如果设置num-executors=5,则分配给这个任务5个cpu去执行Task,
如果executor-cores=10,则每个cpu分配的核数为10,即每个executor上启动10个线程执行任务,总得分配的Task为5*10。
executor-memory=2g为每个Task分配的内存为2g,这个值过大,则会影响启动的executor的数量。
spark-submit --master yarn-cluster --name importdtaweather3 --num-executors 10 --executor-cores 12 --executor-memory 3g --queue def0 --class com.jusn.spark.test.DFTestRowkeySelf weatherimport-1.0-jar-with-dependencies.jar