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

标签 apache-spark spark-submit

我已经在 3 个节点的集群上设置了 Spark,其中一个是我的 namenode-master(名为 h1),另外两个是我的 datanode-workers(名为 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

我认为它只在主服务器上运行的原因是,当我进入 Spark 应用程序 GUI 时,我只在执行程序列表中看到主服务器 h1。我想我也应该在这里看到我的工作节点 h2 和 h3 吗? SparkUI

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

最佳答案

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

此外,当您指定 YARN 时,您需要确保您使用的资源(如执行程序内存、执行程序核心和执行程序数)由集群管理器(即 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

关于apache-spark - Spark作业不使用集群上的工作节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49902987/

相关文章:

apache-spark - 使用 ALS.recommendation 得到错误的推荐

apache-spark - Spark DenseVector 的输出转换为 StringType

apache-spark - Spark读取不同版本的Parquet文件

hadoop - spark Yarn模式如何从spark-submit获取applicationId

java - Spark提交java.lang.NullPointerException错误

hadoop - 在运行时(通过spark-submit)将一些hadoop配置添加到spark应用程序?

apache-spark - 'replaceWhere'会导致删除吗?

apache-spark - Spark中的HDFS文件访问

Pyspark:使用spark-submit运行文件时执行Jupyter命令时出错

scala - 在 spark 代码中使用配置文件管理 conf.setMaster() 以自动设置本地或 yarn 集群