好久没有来写博客了,总算是忙完了,今天回到阔别已久的CU。一早来到单位,就开始着手调试新测试镜像。但是一启动就出了问题,原先调试好的分布式平台却提示了错误:
     Zookeeper available but no active master location found
     直观的感觉是HMaster的问题,果然,JPS查看发现没有了HMaster进程,进入到hbase-master日志中查看,发现了以下错误提示:
     Could not obtain block: blk_number... ...file=/hbase/hbase.version
     
无法访问数据块的原因无非有两个:一是该数据块不存在;二是该数据块没有权限。自己去HDFS下查看发现了/hbase目录,也有hbase.version文件,虽然该文件大小为0kb。于是自己首先想到是权限问题,接下来开始为/hbase修改权限:
     %hadoop fs -chmod 777 /hbase
     %hadoop fs -chmod -R 777 /hbase     (修改目录权限)
     但是试过之后结果依旧。这时自己确定HMaster自动关闭的问题不是因为目录权限拒绝访问,那么是什么呢?之前也发生过HMaster启动后自动关闭的问题,自己当时的解决办法是格式化namenode即可:
     %hadoop namenode -format
     但是这次试过之后仍旧不成功,于是自己考虑会不会是由于分布式环境下不同节点的hdfs的重复工作导致的不一致使得HMaster无法正常启动呢?抱着这样的想法删掉了各个节点和master上的hdfs数据,在master上重新启动hbase结果成功,HMaster不再自动关闭。
    这时我们需要重新复制生成HDFS干净的HDFS:
     %rm -Rf reports/data 
    %hadoop fs -copyFromLocal reports /texaspete/templates/reports

    %hadoop fs -put match/src/main/resources/regexes /texaspete/regexes


小结:
     HMaster启动后自动关闭可能有多种原因,按照自己的经验,可以试着尝试以下方法:
1. 重新格式化namenode,重启HMaster看问题是否依旧存在;
2. 检查/hbase目录的hdfs权限设置是否有问题;
3. 清楚各个节点上的hbase数据,然后重新启动hbase,自己猜测是各节点状态不一致导致的HMaster无法启动问题。
     当然,应该还会有其他的情况,随着学习的深入慢慢来积累总结吧!
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐