好久没有来写博客了,总算是忙完了,今天回到阔别已久的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无法启动问题。
当然,应该还会有其他的情况,随着学习的深入慢慢来积累总结吧!
相关文章
- .Net实现Windows服务安装完成后自动启动的两种方法
- 用VS制作的windows服务安装包 安装完后如何让服务自动启动
- [转].Net Windows服务安装完成后自动启动
- [Android实例] android应用静默升级,安装完成后自动启动该应用
- .Net Windows服务安装完成后自动启动
- 用VS2005打包,如何让主程序在安装完成后自动启动?
- VS2010 部署程序在安装完成后自动启动外部程序
- 在Windows7中,如何让一个需要管理员权限运行的应用程序在系统启动后自动运行?
- 本地计算机上的ArcSde Sercice(esri_sde)服务启动后停止。某些服务未在由其他服务或进程使用时将自动停止。
- 为什么Spring引导web应用程序在启动后立即关闭?