/etc/hosts
有错误时候
Master服务器
127.0.0.1 localhost Master
172.16.34.20 Master
172.16.34.18 Slave1
172.16.34.17 Slave2
#ipv6 ....
ipv6 module.......
Slave1服务器
127.0.0.1 localhost Slave1
172.16.34.20 Master
172.16.34.18 Slave1
172.16.34.17 Slave2
#ipv6 ....
ipv6 module.......
Slave2服务器
127.0.0.1 localhost Slave2
172.16.34.20 Master
172.16.34.18 Slave1
172.16.34.17 Slave2
#ipv6 ....
ipv6 module.......
运行正常时候
Master服务器
172.16.34.20 Master
172.16.34.18 Slave1
172.16.34.17 Slave2
.
Slave1服务器
172.16.34.20 Master
172.16.34.18 Slave1
172.16.34.17 Slave2
Slave2服务器
172.16.34.20 Master
172.16.34.18 Slave1
172.16.34.17 Slave2
错误之前配置 运行在 ubuntu正常; 运行在centos 不正常,改为修改后 运行正常
遇到这个问题的原因是由于master在启动的时候,将hosts中的Master从127.0.0.1替换为了172.16.34.20,而Slave2,Slave3在尝试连接Master的过程中,Master被解析为127.0.0.1与172.16.34.20不一致造成的,
换言之,master在启动的时候能将Master替换为172.16.34.20...
而后面Worker向master注册时候,只能替换为127.0...,
解决方法为将/etc/hosts中的Master对应172.16.34.20,不要让 127.0.0.1 对应 Master;
SPARK_MASTER_IP直接写IP
注释 如下hosts,只保留集群间解析
#127.0.0.1 ……
#::
centos6和centos7防火墙的关闭 这两者防火墙关闭方式不一样 ,单独有一篇文章讲解
Spark的搭建过程就不多说了,网上有多教程,这里主要参考这个链接http://www.tuicool.com/articles/QBRJn。但是在配置过程中也遇到了很多问题,这里就只说一说Spark启动集群所有机器时worker无法启动或无法在集群管理器上线的问题,折腾了两天终于搞明白设置方法!
使用start-all.sh启动集群所有的机器时worker无法启动或无法在集群管理器上线。这里分两种情况,一是从Master机执行启动集群命令Salve根本就不相应;而是Salve机可以跟随集群启动,但是在集群管理器的webUI上不上线。
如果worker根本无法启动建议首先检查从Master机知否可以ssh无密码登录Salve机,若无法成功尝试参考如下两个链接
https://chenhuachao.com/2016/05/26/ssh%E5%87%BA%E9%94%99-sign-and-send-pubkey-signing-failed-agent-refused-operation/
http://blog.csdn.net/zhenliangqun/article/details/50375375
如果出现如下错误
一般与进程阻塞问题,建议重启Salve机
如果Salve机无法在集群管理器上线,既下图的webUI中只有一个工作节点(这个节点就是Master机,因为它既可以是主节点也可以作为工作节点的一员)而其他工作节点无法上线,
在worker节点上的log日志里看到如下错误:
WARN Worker:Failed to connect to master ubuntu://7077
也就是start-all.sh可以将worker启动起来,但是worker无法连接到集群管理器,建议参考以下配置
配置Master机/etc/hosts:
1
2
|
127.0.0.1 localhost
192.168.211.106 ubuntu
|
注意:这里的ubuntu原来可能是127.0.1.1,现在要改成你本机的ip
配置Master机$SPARK_HOME/conf/spark-env.sh:
1
2
3
4
5
6
7
8
|
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:
1
2
3
|
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上线