启动YARN时,ResourceManager 和 NodeManager报错 Error found before invoking supervisord dictionary update s

在通过CM启动Yarn服务时候,不同的版本可能都会遇到同样的一个问题,如下图所示: 

Error found before invoking supervisord: dictionary update sequence element #89 has length 1; 2 is required

之前在cm5.5、cm5.7以及现在的cm5.11都出现过这样的问题。

在cm5.5中,修改文件 
/opt/cloudera-manager/cm-5.5.0/lib64/cmf/agent/src/cmf/util.py

修改内容如下,原文件:

pipe = subprocess.Popen(['/bin/bash', '-c', ". %s; %s; env" % (path, command)],
stdout=subprocess.PIPE, env=caller_env)
  • 1
  • 2
  • 3

修改为:

pipe = subprocess.Popen(['/bin/bash', '-c', ". %s; %s; env | grep -v { | grep -v }" % (path, command)],
stdout=subprocess.PIPE, env=caller_env)
  • 1
  • 2
  • 3

也即在env的后面加了| grep -v { | grep -v }这玩意,启动成功。

但cm5.7及以后的版本中,貌似不存在这个路径或文件里面不包含这部分内容,仔细查看日志文件cloudera-scm-agent.log,如下图(cm5.11): 

涉及到的文件为/opt/cloudera-manager/cm-5.11.1/lib64/cmf/agent/build/env/lib/python2.6/site-packages/cmf-5.11.1-py2.6.egg/cmf/util/__init__.py 
果然在这个文件里面包含上述修改的内容,尝试着按照上述修改。 
然后重启agent,再启动Yarn,这次成功了。

如果其他版本遇到类似问题,可尝试上述2个文件。

以上只针对完全离线安装的CDH,如果是完全在线或者半离线(rpm包)安装,可能路径不一样。楼主从来只用完全离线方式安装,所以其他2种方式路径未知。

可尝试用find命令查找,如 find / -name 'util.py'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值