繁体   English   中英

作业使用的执行者的火花数

[英]Spark number of executors that job uses

这是我的Spark群集详细信息-内存-29.3GB和10核。

在此处输入图片说明

现在我做这份工作,

spark-submit --master spark:// hadoop-master:7077 --executor-memory 1g-executor-cores 2 /home/hduser/ratings-counter.py

但是当我单击完成的应用程序时,我看到5个执行程序正在执行。

spark如何确定执行5个执行者?

在此处输入图片说明

从火花配置文档

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM