Spark 作业不使用集群上的工作节点

Spark job not using the worker nodes on the cluster

我在 3 个节点的集群上设置了 spark,一个是我的 namenode-master(名为 h1),另外两个是我的 datanode-worker(名为 h2 和 h3)。当我向 运行 主机上的 spark 作业发出命令时,似乎该作业没有分发给工人,而只是在主机上完成。我给 运行 spark 作业的命令是

bin/spark-submit --class org.dataalgorithms.chap07.spark.FindAssociationRules /home/ubuntu/project_spark/data-algorithms-1.0.0.jar ./in/xaa

我之所以认为它只是 运行ning 在 master 上,是因为当我继续使用 Spark 应用程序 GUI 时,我只在执行程序列表中看到 master h1。我想我也应该在这里看到 h2 和 h3 我的工作节点吗? SparkUI

如果我错了请纠正我。我是新手所以请原谅我的无知。

您尚未指定部署作业的模式。您需要指定 --deploy-mode 以将作业部署到集群,还需要指定 --master 可以是 YARN/Mesos。

此外,当您指定 YARN 时,您需要确保您正在使用的资源,如 executor-memory、executor-cores 和 num-executors 由集群管理器管理,即 YARN。 YARN 为您提供不同的调度程序来分配资源。因此,您需要检查您配置的调度程序类型。

在此处阅读有关调度程序的信息

https://blog.cloudera.com/blog/2016/01/untangling-apache-hadoop-yarn-part-3/

spark-submit --num-executors 50 --executor-memory 4G --executor-cores 4  --master yarn --deploy-mode cluster

感谢您的所有帮助和建议。我尝试了其中的许多,但最终出现了一些或其他错误。对我有帮助的是用我的常规命令指定 --master spark://IP:PORT 。所以我的新执行命令看起来像这样

bin/spark-submit --class org.dataalgorithms.chap07.spark.FindAssociationRules --master spark://IP:PORT /home/ubuntu/project_spark/data-algorithms-1.0.0.jar ./in/xaa

这在真正的分布式集群模式下启动了我的 spark 作业