我有一个由 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 资源和节点管理器提供额外内存的规定。