零、前言
Spark的搭建过程就不多说了,网上有多教程,这里主要参考这个链接http://www.tuicool.com/articles/QBRJn。但是在配置过程中也遇到了很多问题,这里就只说一说Spark启动集群所有机器时worker无法启动或无法在集群管理器上线的问题,折腾了两天终于搞明白设置方法!
一、问题描述
使用start-all.sh启动集群所有的机器时worker无法启动或无法在集群管理器上线。这里分两种情况,一是从Master机执行启动集群命令Salve根本就不相应;而是Salve机可以跟随集群启动,但是在集群管理器的webUI上不上线。
0x01 worker无法启动
如果worker根本无法启动建议首先检查从Master机知否可以ssh无密码登录Salve机,若无法成功尝试参考如下两个链接
http://blog.csdn.net/zhenliangqun/article/details/50375375
如果出现如下错误
一般与进程阻塞问题,建议重启Salve机
0x02 worker无法在集群管理器上线
如果Salve机无法在集群管理器上线,既下图的webUI中只有一个工作节点(这个节点就是Master机,因为它既可以是主节点也可以作为工作节点的一员)而其他工作节点无法上线,
在worker节点上的log日志里看到如下错误:
WARN Worker:Failed to connect to master ubuntu://7077
也就是start-all.sh可以将worker启动起来,但是worker无法连接到集群管理器,建议参考以下配置
配置Master机/etc/hosts:
127.0.0.1 localhost 192.168.211.106 ubuntu
注意:这里的ubuntu原来可能是127.0.1.1,现在要改成你本机的ip
配置Master机$SPARK_HOME/conf/spark-env.sh:
export JAVA_HOME=/home/Spark/SoftWare/jdk1.8.0_121 export SCALA_HOME=/home/Spark/SoftWare/scala-2.10.4i export HADOOP_CONF_DIR=/home/Spark/SoftWare/hadoop-2.7.2 export SPARK_MASTER_IP=ubuntu export SPARK_LOCAL_IP=192.168.211.106 export SPARK_WORKER_MEMORY=2G export SPARK_MASTER_PORT=7077 export MASTER=spark://${SPARK_MASTER_IP}:${SPARK_MASTER_PORT}
注意:
1、这里的SPARK_MASTER_IP使用的是hostname
2、SPARK_LOCAL_IP是本机ip,在这里hostname的重定向虽然是本机ip,但是SPARK_LOCAL_IP直接写hostname不一定成功。
3、本配置的hostname既是ubuntu
配置Salve机/etc/hosts:
127.0.0.1 localhost 127.0.1.1 salve 192.168.211.106 ubuntu
注意:
1、Master机与Salve机的hostname不能一致
2、Salve机的$SPARK_HOME/conf/spark-env.sh配置无关紧要
若问题解决即可看到所有worker上线