HBase troubleshooting的一般思路

1.如何发现问题

在我们的集群中,HBase的错误是通过splunk和nagio的报警机制报告的。当service出现异常,如退出,crash,master/regionserver抛出异常等,管理员都会收到消息。

2.问题跟踪方法

在http://hbase.apache.org/book.html#trouble.general中,HBase给出了处理问题的一般思路。

1.将exception直接到Google或者search-hadoop.com搜索。Google是工程师离不开的工具啊。

2.HBase的问题往往不会是独立的。在日志中可以发现很多exception,最直接的方法就是找到第一个exception。Java的问题一般都是这么解决。但是不要只是grepError信息,因为HBase的loglevel定义的有些混乱。有时候一些严重的错误却标成INFO。建议还grep一下“Dump”,因为Regionserver可能会打印一些metric出来。

3.一定能够要注意设置ulimit和xcievers.Regionserver可能会因为Zookeepersessiontimout而自动退出,这个在之前的blog也讨论过。

3.Log的位置

NameNode:$HADOOP_HOME/logs/hadoop-<user>-namenode-<hostname>.log

DataNode:$HADOOP_HOME/logs/hadoop-<user>-datanode-<hostname>.log

JobTracker:$HADOOP_HOME/logs/hadoop-<user>-jobtracker-<hostname>.log

TaskTracker:$HADOOP_HOME/logs/hadoop-<user>-jobtracker-<hostname>.log

HMaster:$HBASE_HOME/logs/hbase-<user>-master-<hostname>.log

RegionServer:$HBASE_HOME/logs/hbase-<user>-regionserver-<hostname>.log

4.一些重要的工具

a)search-hadoop.com

b)tail

c)top

d)jps

e)jstack

f)OpenTSDB。没有用过。有用过的评论下啊。

g)clusterssh+top。这个是一个好思路。可以用ssh$hosttop收集集群中其他机器的信息。这样就成了一个monitor工具了。

h)$./bin/hbasehbck

返回OK或者INCONSISTENCY。如果是INCONSISTENCY,可以多运行几次,因为有可能cluster还没有完全启动好或者有Region在splitting。-fix可能可以修复不一致。(没有试过,有机会可以看看到底好不好用。文档上写的那么不肯定)

相关推荐