0

我有一个由 3 台运行 Hadoop 和 Spark-1.5.2 的 macOS 机器组成的集群(尽管使用 Spark-2.0.0 存在同样的问题)。使用“纱线”作为 Spark 主 URL,我遇到了一个奇怪的问题,即任务仅分配给 3 台机器中的 2 台。

根据 Hadoop 仪表板(主服务器上的端口 8088),很明显所有 3 个节点都是集群的一部分。但是,我运行的任何 Spark 作业都只使用 2 个执行器。

例如,这里是长时间运行 JavaWordCount 示例的“Executors”选项卡: 在此处输入图像描述 “batservers”是主服务器。应该有一个额外的奴隶,“batservers2”,但它只是不存在。

为什么会这样?

请注意,我的 YARN 或 Spark(或者,就此而言,HDFS)配置都没有异常,除了为 YARN 资源和节点管理器提供额外内存的规定。

4

1 回答 1

0

值得注意的是,只需要详细查看 spark-submit 帮助消息即可找到答案:

仅限纱线:

...

--num-executors NUM 要启动的执行程序数(默认值:2)。

如果我--num-executors 3在 spark-submit 命令中指定,则使用第三个节点。

于 2016-10-10T23:18:56.257 回答