spark集群中的worker总是连接不到master, zookeeper集群实现master高可用?
1,spark0-2 三台主机是zookeeper集群
2,spark0-4五台主机是 spark集群
3 spark0-1 两台主机实现master高可用。
在spark0上运行start-all.sh启动spark集群,这个时候会在本机启动spark 作为master,启动slaves文件中的 spark2 spark3 spark4主机作为slave。
这个时候就出现了一个问题:
spark0 上运行start-all。sh 发现slave主机没有启动成功,仅spark0上的master启动成功了。
查看spark0上的日志发现 spark0在通过ssh 启动slave的时候 slave主机上的spark启动,然后尝试连接master,却将自己作为master。
比如说spark0 通过ssh 启动spark2上的spark,spark2上的 spark启动了作为worker,此时启动之后这个worker 尝试连接master,日志显示spark2上的worker spark 将自己localhost 作为master,正常情况下他应该询问zookeeper 集群 spark master是哪个,为什么这个地方却将localhost 作为master?
各位我的意思可以理解吗?
补充内容:
(1)spark集群配置连接zookeeper集群
--------------------------------------------------------再述问题---------------------------
再述问题:
(1)spark0 作为master ,spark1 作为备用master
(2)slave中配置了spark2-4 作为worker节点
(3)在spark0上运行start-all.sh ,此时首先本地启动spark0上的 spark作为master,然后通过ssh 启动slaves 中的 spark2,spark3 spark4作为worker
(4)spark2上的 spark启动之后 需要和master通信确认 ,此时我查看了spark2上的日志发现,spark2上的spark 找不到master, 日志显示将localhost 作为了mater,就如上图中的 红色箭头显示一样
(5)spark0 一直收不到spark2-spark4 work节点的确认启动成功信息,所以worker启动失败。
问题: 为什么spark2 spark3 spark4 这三个节点找不到master?将localhost作为了master ? 正常情况下应该是 spark2 spark3 spark4 启动之后 应该询问zookeeper集群 哪个接地啊是master, 因为我们在saprk2 spark3 spark4中的 spark-env.sh 文件中配置了 连接zookeeper集群参数
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不是有一个slaves文件吗?那里面应该配置worker地址的.哪一台机器是slaves,把主机地址写里面了吗?
兄弟 问题解决了么,我特意注册了账号来回复。。
我也遇到了一样的问题,
开始以为是hosts文件配置错了,后来又找zookeeper配置的原因,结果都没有结果
耗费了半天时间
后来在stackoverflow上找到了解决方法:
在spark-env.sh中配置:
export SPARK_MASTER_HOST=your master ip
export SPARK_LOCAL_IP=your local ip
因为据说在spark2.0之后,SPARK_MASTER_IP这个参数没有了,变成了SPARK_MASTER_HOST
我之前一直用的SPARK_MASTER_IP,在其他的服务器上没有问题,但是在生产环境出现了问题。
虽然疑惑还是有的,但是至少问题解决了。