并非所有节点都在 Spark Standalone 集群中使用
Not all nodes used in Spark Standalone cluster
我用两个虚拟机制作了一个 Spark 独立集群。
在第一个 VM(8 核,64 GB 内存)中,我使用命令手动启动了 master
bin/spark-class org.apache.spark.deploy.master.Master
.
在第二个 VM(8 核,64 GB 内存)中,我使用
手动启动了从机
bin/spark-class org.apache.spark.deploy.worker.Worker spark://<hostname of master>:7077
.
然后在第一个 VM 中,我还使用上面的 slave 命令启动了 slave。从下图中可以看出,workers 和 master 都已启动并且处于活动状态。
但是当我 运行 我的 Spark 应用程序时,只有第二个 VM 中的工作人员是 运行 ( worker-20160613102937-10.0.37.150-47668
)。第一个虚拟机 ( worker-20160613103042-10.0.37.142-52601
) 的工人没有 运行。见下图
我希望在我的 Spark 应用程序中使用这两个 worker。如何做到这一点?
EDIT :请参阅这张执行器摘要图片,其中与 VM 1st 中的工作程序对应的执行器失败。
当我点击任何 stdout
或 stderr
时,它显示 invalid log directory
的错误。见下图
错误已解决。 Spark 无法在第一个虚拟机上创建日志目录。我提交 Spark 作业的用户没有在路径 /usr/local/spark
上创建文件的权限。只需更改目录 (chmod -R 777 /usr/local/spark
) 的 read/write 权限就可以了。
我用两个虚拟机制作了一个 Spark 独立集群。
在第一个 VM(8 核,64 GB 内存)中,我使用命令手动启动了 master
bin/spark-class org.apache.spark.deploy.master.Master
.
在第二个 VM(8 核,64 GB 内存)中,我使用
手动启动了从机
bin/spark-class org.apache.spark.deploy.worker.Worker spark://<hostname of master>:7077
.
然后在第一个 VM 中,我还使用上面的 slave 命令启动了 slave。从下图中可以看出,workers 和 master 都已启动并且处于活动状态。
但是当我 运行 我的 Spark 应用程序时,只有第二个 VM 中的工作人员是 运行 ( worker-20160613102937-10.0.37.150-47668
)。第一个虚拟机 ( worker-20160613103042-10.0.37.142-52601
) 的工人没有 运行。见下图
我希望在我的 Spark 应用程序中使用这两个 worker。如何做到这一点?
EDIT :请参阅这张执行器摘要图片,其中与 VM 1st 中的工作程序对应的执行器失败。
当我点击任何 stdout
或 stderr
时,它显示 invalid log directory
的错误。见下图
错误已解决。 Spark 无法在第一个虚拟机上创建日志目录。我提交 Spark 作业的用户没有在路径 /usr/local/spark
上创建文件的权限。只需更改目录 (chmod -R 777 /usr/local/spark
) 的 read/write 权限就可以了。