[英]Spark number of executors that job uses
从火花配置文档 :
spark.executor.cores : The number of cores to use on each executor. In standalone and Mesos coarse-grained modes, setting this parameter allows an application to run multiple executors on the same worker, provided that there are enough cores on that worker. Otherwise, only one executor per application will run on each worker.
由于您有10个核心并将执行者核心设置为2,因此会生成5个执行者。
此处说明的问题与微调有关。 可以在以下位置找到更多信息: http : //blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-2/
要设置执行程序的数量,您需要打开YARN。 核心数=执行程序可以运行的并发任务(使用hdfs时,建议将其保持在5以下)。 因此,对于您的示例,我们将--executor-cores
设置为3,而不是@ user1050619上面的注释中的2。 执行者的数量将是10/3〜3。 要确保对此进行控制,可以按照@ user1050619在注释--num-executors
。 在您的用户界面中,超出执行程序限制的问题是5,因此,如果有足够的内存,它将尝试达到此上限。 解决此问题的一种方法是使用动态分配 。 这样可以实现更精细的控制。 在这里,最大执行程序的数量可以使用以下选项设置: spark.dynamicAllocation.maxExecutors
,然后还可以将初始执行程序的数量设置为3: spark.dynamicAllocation.initialExecutors
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.