Hbase PleaseHoldException错误
PleaseHoldException
① 原因:(由于正在操作Hbase时,电脑突然关机,未正常关闭hbase,故导致shell无法正常显示)如下图:
②解决过程:
先在网上百度到了使用https://blog.csdn.net/liulang12580/article/details/77841699 可能是因为出错原因不同,所以使用教程并不能完全解决问题,还导致出了别的问题
问题1 Can't get master address from ZooKeeper; znode data == null解决办法
解决方法
http://www.aboutyun.com/thread-8691-1-1.html
问题2 (pid文件(在stop-all.sh stop-dfs.sh,stop-yarn.sh脚本,发现原理都是通过一个pid文件来停止集群的。这些进程的pid文件默认都是保存在系统的/tmp目录下面,)不存在
参考教程: https://blog.csdn.net/YonJarLuo/article/details/78252637
先解决了以上问题。
建议:百度纠错时,尽量找与自己出错原因相近的教程解决问题,否则会给自己带来很多麻烦。
然后解决以上问题后,又回到了最初的错误。
然后找到了和我一样的情况的博客:https://blog.csdn.net/qq_41665356/article/details/80271562 参考它解决了问题。
首先
① 检查文件 :
hdfs fsck / -locations -blocks -files
出现以下结果:
图 1
图 2(删除一个文件后)
以上黄色的部分表明:
图 1 有2个文件处于打开状态,说明当时正在写文件时断电了,因此需要删除这2个文件,才可正常启动HBase。
图 2 有1个文件处于打开状态,说明当时正在写文件时断电了,因此需要删除这1个文件,才可正常启动HBase。(因为删除了前一个文件的过程没截图,直接从这个文件开始解释。)
② 查看哪些文件正在打开中:
hdfs fsck / -openforwrite
如下图所示:
③黄色部分即为打开的文件,执行删除文件:(删除的文件与你的上一步结果相对应)
Hadoop dfs -rm
/hbase/WALs/zhaoteng-virtualbox,16201,1539096368516/zhaoteng-virtualbox%2C16201%2C1539096368516.meta.1539096385044
再次检查:
hadoop fsck / -openforwrite
黄色部分没有文件即可。
然后重启hbase即解决问题。