1.问题:
- 关于AWS,S3之类的错误.
- Hmaster没有 或者是 Hmaster启动之后几秒关闭.
- 解决问题’3’后HRegionServer 启动之后几秒关闭.
2.方法:
- 看日志,但是要分清看的是 Hmaster日志,和 HRegionServer日志,以及 *.log日志,*.out日志.
- 善用Google. 所谓善用, 搜索词的选择,用英文还是中文.
- 最后发现是缺jar包。
3.具体解决
1. 关于AWS,S3之类的错误.
解决方法就是:
思路: 将Hadoop下的jar包复制到hbase下,还有那个aws的jar包。
// 拷贝 Hadoop下的包到hbase
find /home/hadoop/software/hadoop/share/hadoop -name "hadoop*jar" | xargs -i cp {} /home/hadoop/software/hbase/lib/
// 拷贝aws*.jar
find /home/hadoop/software/hadoop/share/hadoop -name "aws*jar" | xargs -i cp {} /home/hadoop/software/hbase/lib/
再次使用“start-hbase.sh”启动,可以看到
HMaster
2. Hmaster进程没有或者是几秒后消失
解决掉问题1中的错误之后,没有了关于AWS的报错,执行命令”start-hbase.sh”之后,”jps”一看,少了Hmaster。
看日志是解决问题的先决条件.
思路: hbase-site.xml配置文件
具体解决方法:
<property>
<name>hbase.rootdir</name>
<value>hdfs://new1data/hbase</value>
</property>
正确的做法是**要写hdfs的集群名称**,自己继承过来的部署文档没有出错或是没有更新.
注意,这里是要看hbase-hadoop-master-$HOST.log 日志,不是其他日志,这样才能正确定位到出错位置.
修改配置文件中关于ZooKeeper的配置.
增加以下一段设置:
<!--运行hbase的用户有写入文件权限的目录作为zookeeper数据目录 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/software/zookeeper/data</value>
</property>
3. 解决问题’2’后HRegionServer 启动之后几秒关闭.
执行zkClient.sh进入zk客户端,
ls /查看目录结构,应该有一个hbase目录,rmr /hbase,删除这个目录,
重新启动habse,应该就没问题了,这步很关键,很容易忽略,让zk重新注册hbase.
这种推倒重来,釜底抽薪的办法有时候很管用.
更新文档
记录问题解决思路,方法,症结