首页 > Web开发 > 详细

hbase运行shell时ERROR:org.apache.hadoop.hbase.PleaseHoldException: Master is initializing 的解决办法

时间:2015-11-22 17:18:03      阅读:658      评论:0      收藏:0      [点我收藏+]

  这个问题困扰了我一天多的时间,百度搜索的前几条的答案也是很扯淡的,说什么把/etc/hosts文件下的127.0.1.1改成127.0.0.1就行了,我也只能呵呵了。今天早上起得很晚,中午迪哥请我们去吃完水饺后就一直在解决这个问题,下面的这两篇文章对我帮助很大:  http://www.cnblogs.com/wukenaihe/archive/2013/03/15/2961029.html  http://www.chenyudong.com/archives/linux-ntpdate-time-synchronize.html   总的说来就是因为hadoop集群各节点的时间不一致造成的,同步之后有一个节点的时间竟然差了27437秒,这必然导致hbase数据库的shell运行失败,其余的几个节点也多多少少有些时差,我就不一一截图了。

技术分享

  每次在$HBASE_HOME目录下启动bin/hbase shell就会报错。看到这个报错信息的时候我就非常奇怪,什么叫PleaseHoldException:Master is initializing?    请等一等,主节点正在启动ing。要我等可以啊,但总不能每次等完就直接挂啊。后来谷歌报错信息,很多人都是通过查看日志信息来分析的。忘了说了,我用的hadoop版本是2.5.2(本来是2.7.1,但是hbase官网说目前只有hbase1.2.x支持,可是hbase1.2.x官方还没给下载镜像,我也是日了狗了),hbase版本是1.1.2。通过ssh连接至slave1上查看RegionServer日志

技术分享

技术分享

  这是用cat hbase-grid-regionserver-Slave1.log  |  grep sync  命令输出的部分结果,其中的几个关键词:clock out of sync,the fifference of 68394ms > max allowed 30000ms, ClockOutOfSyncException。可以看出hbase数据库 shell运行失败的原因大概就是时钟不同步了。

      参考我给出的第二篇博客的连接,安装ntpdate, sudo apt-get install ntpdate后,运行shell命令:ntpdate  0.cn.pool.ntp.org    这个命令很简单,参数可以选择任意一个时间服务器的地址,然后重启hbase数据库:bin/stop-hbase.sh     bin/start-hbase.sh  即可。可能会出现 can‘t get master address from ZooKeeper错误,这可能是由于ZooKeeper不稳定造成的,我试着又重启了一下,就可以了。

技术分享

技术分享

  可以看到,输入list命令,没有报PleaseHoldException的错了。

 

hbase运行shell时ERROR:org.apache.hadoop.hbase.PleaseHoldException: Master is initializing 的解决办法

原文:http://www.cnblogs.com/suddoo/p/4986094.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!