如何设置spark中每个stage的task数目

我们已经知道spark的DAGScheduler是如何划分stage的,那么每个stage中task又是怎么划分的呢?
已邀请:
http://tech.meituan.com/spark-tuning-pro.html
http://www.cnblogs.com/yurunmiao/p/5195754.html
spark中,task是运行在worker进程中的,一个worker占用一个或者多个core。worker的实例又可以设置多个。故一个集群的task最大并行度为:SPARK_WORKER_INSTANCES*SPARK_WORKER_CORES
2.sparkRdd的partition的个数和spark的并行度的关系:spark
rdd的partition的个数和spark的task总数的关系是对应的。
如果大量数据集中到某一个Partition,那么这个Partition在计算的时候就会成为瓶颈。在Spark中,同一个应用程序的不同Stage是串行执行的,而同一Stage中的不同Task可以并发执行,Task数目由Partition数来决定,如果某一个Partition的数据量特别大,则相应的task完成时间会特别长,由此导致接下来的Stage无法开始,整个Job完成的时间就会非常长。

要回复问题请先登录注册