并非所有在Spark Standalone集群中使用的节点
问题描述:
我使用两个虚拟机制作了Spark Standalone集群。
在第一个VM(8个内核,64 GB内存)中,我使用命令 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。在下面的图片中可以看到,两位工作人员&主人都开始了& ALIVE。并非所有在Spark Standalone集群中使用的节点
但是,当我运行我的Spark应用程序时,只有第二个VM中的worker正在运行(worker-20160613102937-10.0.37.150-47668
)。第一台VM的工作人员(worker-20160613103042-10.0.37.142-52601
)不运行。见下面的图
我希望两个工人应该在我的星火应用中使用。如何才能做到这一点?
编辑:请参阅此执行器摘要的照片,其中VM 1st中的worker对应的执行程序失败。
当我点击任何stdout
或stderr
,它显示的invalid log directory
错误。见下面的图
答
错误得到解决。 Spark无法在第一台虚拟机上创建日志目录。我提交Spark作业的用户没有权限在路径/usr/local/spark
上创建文件。只是改变目录的读/写权限(chmod -R 777 /usr/local/spark
)就诀窍了。
您确定您正在处理的输入数据是否足够大,可以在2个执行程序之间进行拆分? –