赞
踩
该问题发生在hiveSQL的脚本执行过程中,sql跑着跑着worker进程就挂掉了,在之前也发生过好几次,但是一直没有重视都是重启就完事了。但是事不过三,所以这次深入研究下到底是什么情况。
首先,我使用的海豚调度的版本是2.0.7,伪集群部署模式。然后进入worker日志看下,报了什么错
org.apache.dolphinscheduler.registry.api.RegistryException: zookeeper check key is existed error,之前从来没有遇见过,根据字面意思,大概可以判断出来在任务运行过程中zookeeper出了点问题,但是可以确保zookeeper是没有挂掉的。
经过网上搜索,在github有人提了这个问题,cpu高负载情况下worker挂掉,跟我情况一摸一样。然后进入registry.properties查看,主要目的是看下zookeeper的连接配置。
registry.plugin.name=zookeeper
#zookeeper连接等待时间600ms
registry.block.until.connected.wait=600
看到了这样的配置,基本上原因可以确定了,在部署海豚调度的节点上其实还有一些其他的服务,比如hive、namenode和resourcesmanager(这样确实很不合理),这是非常吃资源的,但是没办法确实只有这点资源,所以导致hivesql一运行cpu高负载情况就会导致卡顿,而zookeeper设置超时时间600ms,这样出问题的概率那是百分百。
所以,只需要将这个时间设置大一点就好了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。