启动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'
上一篇: hadoop集群启动yarn时出现的问题和解决方法
下一篇: Yarn 简介