分享

CDH安装中的一些问题及解决方法

desehawk 发表于 2015-4-7 21:53:44 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 15 256668

导读:

本文对一些遇到异常总结,如果遇到了,能解决更好,如果还没有遇到,可以备用。
1.yarn无法启动,可能原因是什么?
2.Host Monitor和Service Monitor服务无法启动,可能造成的原因是什么?
3.oozie服务启动失败本文是如何解决的?




Yarn服务无法启动1
有一次同事拿着我写的安装手册去安装CDH,结果在启动Yarn服务这一步一直失败,而且没有log文件生成,也就是根本就不知道是什么错误。
经过百般尝试后依然无果。于是问同事是不是严格按照我的文档上来的,同事说是。结果又尝试和排查了很多次后,同事突然说,我想起来了,打通ssh没按照你的来,你是生成key了分发到其它机器,其实有种口令直接就能分发key到其它机器,不用在本机生成。比如这样ssh-copy-id -p 8282 -i ~/.ssh/id_rsa.pub user@ip。
然后,我怀着崩溃的心情告诉了他,哥哥,master机器也要能免密码登录自己啊!!
最后,做好master机器免登录自己后即可成功安装。
Yarn服务无法启动2
报错信息:
  1. Error found before invoking supervisord: dictionary update sequence element #78 has length1; 2 is required
复制代码

这个错误是CM的一个bug,解决方法为修改/opt/cm-5.3.0/lib64/cmf/agent/src/cmf/util.py文件。将其中的代码:
  1. pipe = subprocess.Popen(['/bin/bash', '-c', ". %s; %s; env" % (path, command)],
  2.                         stdout=subprocess.PIPE, env=caller_env)
复制代码

修改为:
  1. pipe = subprocess.Popen(['/bin/bash', '-c', ". %s; %s; env | grep -v { | grep -v }" % (path, command)],
  2.                         stdout=subprocess.PIPE, env=caller_env)
复制代码

然后重启所有Agent即可。
HDFS服务无法启动
若HDFS服务无法启动,通常是第二次尝试安装中才会遇到,这是只要将上次安装时设置的Namenode和DataNode文件夹下的数据全部删除即可。
Host Monitor和Service Monitor服务无法启动
这个错误的报错信息如下:
  1. 2015-03-23 16:08:10,518 ERROR com.cloudera.cmon.firehose.Main: Error creating LevelDB subject record store.
  2. java.lang.IllegalStateException
  3. at com.google.common.base.Preconditions.checkState(Preconditions.java:133)
  4. at com.cloudera.cmon.tstore.leveldb.LDBResourceManager.register(LDBResourceManager.java:273)
  5. at com.cloudera.cmon.tstore.leveldb.LDBPartitionManager.<init>(LDBPartitionManager.java:270)
  6. at com.cloudera.cmon.tstore.leveldb.LDBPartitionManager.createLDBPartitionManager(LDBPartitionManager.java:196)
  7. at com.cloudera.cmon.tstore.leveldb.LDBTSSubjectRecordTable.create(LDBTSSubjectRecordTable.java:84)
  8. at com.cloudera.cmon.tstore.leveldb.LDBSubjectRecordStore.create(LDBSubjectRecordStore.java:197)
  9. at com.cloudera.cmon.tstore.leveldb.LDBSubjectRecordStore.create(LDBSubjectRecordStore.java:178)
  10. at com.cloudera.cmon.firehose.Main.main(Main.java:517)
复制代码

初步一看,应该是这个两个服务所用的LevelDB文件没有正确的创建,于是删除/var/lib下两者的目录并重试,还是失败。于是尝试在其它机器上安装这2个服务,怎奈每次后退到选择安装机器的那一步时,关于Host Monitor和Service Monitor设置的项目就不见了,就算出现了且设置到其它机器上也不会安装在其它机器上,还是安装在master机器上。
后在google论坛上看到有人说可能是内存设置过低或者“进程打开最大文件数”过低造成的。考虑到打开句柄这步操作在安装CDH之前就已经进行且重来没有出过问题,于是就没有考虑。结果尝试数次过后还是不行。
最后无奈中看了下句柄数ulimit -n,发现居然是1024。然后登录其它slave节点查看,发现都是配置的65535。这是什么情况?同样的配置,会出现不同的结果。最后查看了ulimit -u等配置,发现除了master节点的句柄数配置没有生效以外,其它的都生效了。
最后无意中尝试了下telnet登录master节点,发现ulimit -n的结果居然是65535。好吧,至此终于知道原因了。master节点由于有DCN网络的IP,所以为了应对安全扫描安装了没有心脏漏血漏洞的高版本ssh,而其它slave节点并没有安装。看来是ssh登录造成的打开句柄数出现了异常。只不过我到现在为止都不知道为何系统级别的设置会受到登录方式的影响。
解决方法:由于只有句柄数配置未生效,于是在.bashrc中添加了ulimit -HSn 65535。重新安装,终于成功启动Host Monitor和Service Monitor服务。
8888,50070,8088等端口无法访问
现象:master机器通过wget可以正确的得到页面,但是外网却无法获取,而且网络的设置是正确的。
查看端口占用发现这些端口全部绑定在内网IP上而不是0.0.0.0。
解决方法:去各自的配置文件中配置即可,选择绑定至0.0.0.0端口,然后重启即可。
oozie服务启动失败
通常是第二次尝试安装中才会遇到,报错内容大概是数据库已存在。
解决方法:删除/var/lib/oozie/data文件夹即可。
HUE服务启动失败
报错信息是找不到libxslt.so.1。
解决方法:yum install libxslt即可。

已有(15)人评论

跳转到指定楼层
wjhdtx 发表于 2015-4-8 11:48:44
没有发贴权限,借楼主宝地问个问题:

使用三台虚拟机搭建的hadoop集群,一主两从。
使用cloudera的版本跑作业,只有一台从机器跑作业,另一台从机器作为AM不跑作业;
而apache版本的就没有这个问题,两台机器都跑作业。

问下是什么原因???
谢谢
回复

使用道具 举报

desehawk 发表于 2015-4-8 13:26:58
wjhdtx 发表于 2015-4-8 11:48
没有发贴权限,借楼主宝地问个问题:

使用三台虚拟机搭建的hadoop集群,一主两从。

优化一下:


Map和Reduce任务的数量
合理地设置Map任务与Reduce任务的数量对提高MapReduce任务的效率是非常重要的。默认的设置往往不能很好地体现出MapReduce任务的需求,不过,设置它们的数量也要有一定的实践经验。

首先要定义两个概念—Map/Reduce任务槽。Map/Reduce任务槽就是这个集群能够同时运行的Map/Reduce任务的最大数量。比如,在一个具有1200台机器的集群中,设置每台机器最多可以同时运行10个Map任务,5个Reduce任务。那么这个集群的Map任务槽就是12000,Reduce任务槽是6000。任务槽可以帮助对任务调度进行设置。

设置MapReduce任务的Map数量主要参考的是Map的运行时间,设置Reduce任务的数量就只需要参考任务槽的设置即可。一般来说,Reduce任务的数量应该是Reduce任务槽的0.95倍或是1.75倍,这是基于不同的考虑来决定的。当Reduce任务的数量是任务槽的0.95倍时,如果一个Reduce任务失败,Hadoop可以很快地找到一台空闲的机器重新执行这个任务。当Reduce任务的数量是任务槽的1.75倍时,执行速度快的机器可以获得更多的Reduce任务,因此可以使负载更加均衡,以提高任务的处理速度。
MapReduce1-2:MapReduce任务的优化
发帖板块:
CDH:
http://www.aboutyun.com/forum-165-1.html

hadoop:
http://www.aboutyun.com/forum-53-1.html



回复

使用道具 举报

wjhdtx 发表于 2015-4-8 14:43:33
谢谢回复,我再发帖问问,也优化了一些参数,但不起作用,apache hadoop集群我自己也优化了,是没问题的。cloudera的其实它自己优化了,有的是优化的过头了(对于我的机器来说)
回复

使用道具 举报

smugness 发表于 2015-6-25 13:20:24
学习了,谢谢楼主
回复

使用道具 举报

dahaian 发表于 2016-5-11 10:56:30
楼主有没研究过cdh5.7版本yarn服务启动失败的问题啊,不过你那个解决方案在5.7版本是不行的,因为5.7版本根本就没有那个目录
回复

使用道具 举报

cloudera 发表于 2016-7-18 22:48:57
求助!!!!!CM5.7.1就没这个路径,问题怎么破?没有NodeManager的角色启动日志文件!!!!
也是报,Error found before invoking supervisord: dictionary update sequence element #84 has length 1; 2 is required
错误。
回复

使用道具 举报

cloudera 发表于 2016-7-18 22:49:29
dahaian 发表于 2016-5-11 10:56
楼主有没研究过cdh5.7版本yarn服务启动失败的问题啊,不过你那个解决方案在5.7版本是不行的,因为5.7版本根 ...

我也是遇到这个问题了
回复

使用道具 举报

cloudera 发表于 2016-7-18 22:50:24
修改了这个文件,vi /opt/cloudera-manager/cm-5.7.1/share/cmf/python/Lib/util.py
但是没用
回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条