我有一个运行Hadoop和Spark-1.5.2的3台macOS机器的集群(尽管Spark-2.0.0存在同样的问题)。使用'yarn'作为Spark主URL,我遇到了一个奇怪的问题,即任务只分配给3台机器中的2台。
基于Hadoop仪表板(主站上的端口8088),很明显所有3个节点都是集群的一部分。但是,我运行的任何Spark作业只使用2个执行程序。
例如,这是JavaWordCount示例的漫长运行中的“Executors”选项卡: “batservers”是主人。应该有一个额外的奴隶,“batservers2”,但它不存在。
为什么会这样?
请注意,除了为YARN资源和节点管理员提供额外内存的规定之外,我的YARN或Spark(或者,就此而言,HDFS)配置都不常见。
答案 0 :(得分:0)
值得注意的是,只需详细查看spark-submit帮助消息即可找到答案:
纱线只:
...
- num-executors NUM要启动的执行者数量(默认值:2 )。
如果我在spark-submit命令中指定--num-executors 3
,则使用第3个节点。