Spark集群worker启动起来,一会停掉原因--尝试



/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;



  1. Work启动,但Http中没有Worker节点:说明Slave节点与Master的通讯出现问题,或Slave节点无法向Master注册,导致虽然Woker启动但不能在Master中找到。这时候需要检查/etc/hosts中的配置是否准确、合理;
  2. Woker启动失败,这种情况说明配置可能存在问题,需要仔细检查;
  3. 版主多次尝试在spark-env.sh中配置master-port\worker-port,但是都失败,具体原因探索中。




是不是你的worker进程已经启动了 但是worker向master注册的时候失败了 应该是worker结点的配置有问题

先感谢下你的回复,谢谢!!

是的,worker进程已经启动,我看日志就是worker向master注册都时候,找不到master的地址,unreachable ip address.
我都是按照视频,博客各种资料上都试过都spark-env.sh都配置来的

master上配置,然后复制到worker上 .
这样就可以启动了呀.就出现那个问题了!


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上不上线。

0x01 worker无法启动

如果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机

0x02 worker无法在集群管理器上线

如果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上线




你可能感兴趣的:(Spark集群worker启动起来,一会停掉原因--尝试)