并非 Spark Standalone 集群中使用的所有节点

Posted

技术标签:

【中文标题】并非 Spark Standalone 集群中使用的所有节点【英文标题】:Not all nodes used in Spark Standalone cluster 【发布时间】:2016-06-13 06:31:42 【问题描述】:

我已经创建了一个包含两个虚拟机的 Spark 独立集群。 在第一个 VM(8 核,64 GB 内存)中,我使用命令手动启动了 master bin/spark-class org.apache.spark.deploy.master.Master. 在第二个虚拟机(8 核,64 GB 内存)中,我使用bin/spark-class org.apache.spark.deploy.worker.Worker spark://<hostname of master>:7077 手动启动了从属设备。 然后在第一个 VM 中,我还使用上述从属命令启动了从属。从下图中可以看出,worker 和 master 都已启动并处于活动状态。

但是当我运行我的 Spark 应用程序时,仅运行第二个 VM 中的工作程序 (worker-20160613102937-10.0.37.150-47668)。第一个 VM (worker-20160613103042-10.0.37.142-52601) 的工作人员不运行。见下图

我希望在我的 Spark 应用程序中同时使用这两个 worker。如何做到这一点?

编辑:请参阅这张执行器摘要的图片,其中与 VM 1st 中的工作人员对应的执行器失败。

当我点击任何stdoutstderr 时,它会显示invalid log directory 的错误。见下图

【问题讨论】:

您确定您正在处理的输入数据足够大,可以拆分到 2 个执行器中吗? 【参考方案1】:

错误已解决。 Spark 无法在第一个 VM 上创建日志目录。我提交 Spark 作业的用户无权在路径 /usr/local/spark 上创建文件。只需更改目录 (chmod -R 777 /usr/local/spark) 的读/写权限即可。

【讨论】:

以上是关于并非 Spark Standalone 集群中使用的所有节点的主要内容,如果未能解决你的问题,请参考以下文章

Spark新手入门——3.Spark集群(standalone模式)安装

为啥 Spark Standalone 集群不使用所有可用的内核?

Java连接Spark Standalone集群

java 怎么提交应用程序到spark standalone集群中去运行

spark使用idea以client模式提交应用到standalone集群

Spark-Standalone模式