1.现象
在内网搭了一个 hbase-2.2.6(hadoop-2.7.3)的环境,使用的是其内置的 zookeeper-3.4.10,16010端口对应的 web界面可以正常访问,且各项功能正常。
在使用 hbase shell的过程中,首先是 hbase shell启动非常慢,约 210s才成功,其次执行 scan、put、get等命令需要 20s左右才能完成。以笔者的经验,hbase肯定出问题了,不可能这么慢。
2.分析
hbase可能执行某个操作失败了一直在重试,达到重试次数才会返回。
思路一:——不好使
重启 hbase,期望它自己恢复
思路二:——没有发现问题相关的日志
认真查看 hbase master的日志,并将其日志级别调为 DEBUG(修改 conf目录下 log4j的配置文件,然后重启 hbase即可)
思路三:——硬件资源足够
有没有可能是机器硬件性能不足导致的,使用 free -h和 top命令分别查看了机器的内存消耗和 CPU使用情况,一切正常。
最终:
还是得从 hbase shell着手,通过 hbase shell -h查看帮助得知其支持调试模式,具体命令如下:
hbase shell -d
这次 hbase shell启动时输出了较多跟 zk相关的信息,可以看到在 210s里不断有 zk相关的日志打印出来,这里就比较明显了,出问题的很可能不是 hbase而是 zk。联想到 zk节点之间需要通过主机名进行通讯,马上测试了下:
ping host185
发现 ping不通,至此,大概率是因为主机名导致的了。
3.解决
虽然分析问题的过程较为艰难,但是解决方法却很简单:
vim /etc/hosts
# 添加主机名和 ip的映射即可
192.168.xx.xx host185
重新测试 hbase shell,秒开,scan、put、get等命令均可迅速完成。文章来源:https://www.toymoban.com/news/detail-433008.html
这里需要注意的是:如果有多台机器,那么需要修改每台机器的 hosts文件。文章来源地址https://www.toymoban.com/news/detail-433008.html
到了这里,关于HBase Shell启动缓慢及操作耗时长的原因分析与解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!