HBase启动后查询报错:ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing-程序员宅基地

技术标签: hadoop  hbase  

一、介绍

报错信息:

hbase(main):001:0> list_namespace
NAMESPACE                                                                                               
ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
	at org.apache.hadoop.hbase.master.HMaster.checkInitialized(HMaster.java:2938)
	at org.apache.hadoop.hbase.master.HMaster.listNamespaces(HMaster.java:3264)
	at org.apache.hadoop.hbase.master.MasterRpcServices.listNamespaces(MasterRpcServices.java:1027)
	at org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java)
	at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:393)
	at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:133)
	at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:338)
	at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:318)
	

二、解决办法

  • 查询百度
    https://blog.csdn.net/weixin_43648549/article/details/123615758 (内容大概需要进行HBase初始化)
    • 删除zookeeper中的所有的/hbase目录
    # 进入zk客户端
    zkCli.sh
    # 删除hbase目录
    rmr /hbase
    # 查看zookeeper内部目录
    ls /
    
    • 删除HDFS中的/hbase目录(具体目录看hbase-site.xml文件)
    # 删除hdfs中的hbase目录
    hdfs dfs -rm -r /hbase
    
    • 然后重新启动
  • 但是解决这个问题的时候没有看见最后一个问题就去解决了,导致具体解决需要你来,此处给的方法之一就是重新进行初始化按照上面给的步骤。删除HDFS上的hbase目录,删除Zookeeper上的hbase目录。重新启动。
  • 在此之前刚好弄了个ChatGPT也进行了查询
    • 问题:hbase:ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
      ChatGPT:
    org.apache.hadoop.hbase.PleaseHoldException: Master is initializing 是 HBase 中的一个错误信息。它表示 HBase 的 Master 正在初始化中,不能处理当前的请求。
    
    在 HBase 启动过程中,Master 需要加载和初始化各种元数据信息,例如表的 schema、region 的位置信息等。在这个过程中,如果有客户端向 HBase 发送了查询请求,就会收到 PleaseHoldException 错误信息,提示 Master 正在初始化中。
    
    这通常是因为 HBase 正在进行大量的元数据加载和初始化操作,而客户端的请求无法得到及时处理。解决这个问题的方法是等待一段时间后再次发送请求,或者等待 Master 初始化完成后再启动客户端应用程序。
    
    需要注意的是,如果 Master 初始化过程中发生了异常,就可能导致 Master 无法启动。这时需要检查 HBase 的日志文件,查看具体的错误信息,并采取相应的措施解决问题。
    
    
    • 在系统中查看hbase日志文件:
    master.HMaster: hbase:meta,,1.1588230740 is NOT online; state={1588230740 state=OPEN, ts=1678268892251, server=xsqone144,16020,1678267088023}; ServerCrashProcedures=false. Master startup cannot progress, in holding-pattern until region onlined.
    ServerCrashProcedures=false. Master startup cannot progress, in holding-pattern until region onlined.
    snapshot.SnapshotManager: Couldn't delete working snapshot directory: hdfs://192.168.136.144:9000/hbase/.hbase-snapshot/.tmp
    
    
    • 问题:Hbase日志中报错信息为ServerCrashProcedures=false. Master startup cannot progress, in holding-pattern until region onlined.
      ChatGPT:
    ServerCrashProcedures=false. Master startup cannot progress, in holding-pattern until region onlined. 是 HBase 日志中的一条错误信息,表示 HBase Master 启动时遇到了问题,无法继续处理请求,进入等待状态。
    
    在 HBase 启动过程中,Master 负责加载和管理 RegionServer,并且需要对集群中出现的异常事件做出响应。如果启用了 ServerCrashProcedures,Master 可以检测到 RegionServer 的异常退出,并采取相应的措施,例如重新分配 Region、重新平衡集群等。如果未启用 ServerCrashProcedures,Master 将无法处理这些异常事件,导致集群无法正常工作。
    
    在出现 ServerCrashProcedures=false 错误时,通常是由于某个 RegionServer 异常退出,但是 Master 没有收到通知,导致无法继续处理请求。为了解决这个问题,可以尝试以下方法:
    
    启用 ServerCrashProcedures:在 hbase-site.xml 配置文件中设置 hbase.master.enabletableprocedure=true 和 hbase.master.procedure.queue.enabled=true,可以启用 ServerCrashProcedures 功能,让 Master 能够对异常事件做出响应。
    
    手动触发 RegionServer 重新分配:使用 hbase hbck -fix 命令手动触发 RegionServer 的重新分配,以解决集群无法正常工作的问题。
    
    检查 HBase 日志文件:查看 HBase 的日志文件,分析具体的错误信息,尝试解决问题。
    
    需要注意的是,出现 ServerCrashProcedures=false 错误时,可能会影响集群的稳定性和可用性,应及时采取措施解决问题。
    
    
    • 问题(但此时我的两个服务都已启动成功):master.HMaster: hbase:meta,1.1588230740 is NOT online; state={1588230740 state=OPEN, ts=1678268892251, server=xsqone144,16020,1678267088023}; ServerCrashProcedures=false. Master startup cannot progress, in holding-pattern until region onlined.
      ChatGPT:
    	根据给出的日志,HBase的master进程在启动过程中发现hbase:meta这个Region Server处于不在线的状态。这个Region Server的具体信息为:server=xsqone144,16020,1678267088023。
    
    这个问题可能由以下原因引起:
    
    Region Server进程未正确启动或已经停止:可以检查Region Server进程的日志,查看是否存在任何错误或异常信息。
    
    网络故障:检查Region Server所在机器与HBase集群的网络连接是否正常。
    
    配置错误:检查HBase配置文件中与该Region Server有关的配置是否正确。
    
    针对这个问题,可以采取以下解决步骤:
    
    检查Region Server进程是否正常运行。如果该进程已停止,需要重新启动该进程。
    
    检查网络连接是否正常。可以通过ping命令测试Region Server所在机器与HBase集群之间的连接。
    
    检查HBase配置文件中与该Region Server有关的配置是否正确。特别是检查hbase.regionserver.hostname配置是否与该Region Server所在机器的主机名一致。
    
    如果以上步骤均未解决问题,可以尝试重启整个HBase集群或联系相关人员进行进一步的排查。
    
    • 问题:snapshot.SnapshotManager: Couldn’t delete working snapshot directory: hdfs://192.168.136.144:9000/hbase/.hbase-snapshot/.tmp
      ChatGPT:
    根据给出的日志,HBase的SnapshotManager在执行快照操作时无法删除工作目录,工作目录的路径为:hdfs://192.168.136.144:9000/hbase/.hbase-snapshot/.tmp。
    
    这个问题可能由以下原因引起:
    
    HBase没有足够的权限来删除该目录:可以检查HBase所使用的账号是否具有删除该目录的权限。
    
    目录正在被其他进程占用:可能有其他HBase进程或其他进程正在使用该目录。可以通过lsof命令查看该目录是否被其他进程占用。
    
    针对这个问题,可以采取以下解决步骤:
    
    确认HBase所使用的账号是否具有删除该目录的权限。如果权限不足,需要修改权限或使用具有足够权限的账号来执行该操作。
    
    确认目录是否被其他进程占用。如果是,需要先停止占用该目录的进程,然后再执行删除操作。
    
    如果以上步骤无法解决问题,可以尝试手动删除该目录。在手动删除之前,需要确保该目录没有被其他进程占用,并且要注意备份该目录以防止数据丢失。
    
    在解决该问题之后,建议对HBase的工作目录和快照目录进行定期清理,以避免类似的问题发生。
    
  • 请注意一定查看(***/hbase*/logs/*****.log)文件,此文件有具体的错误信息。请按照具体的错误信息进行处理。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_38591577/article/details/129408438

智能推荐

BeetlSql简介及举例_beetsql-程序员宅基地

文章浏览阅读7.9k次,点赞4次,收藏15次。本文参考BeetlSql官方网站,官网网站请点击这里~ BeetSql是一个全功能DAO工具,同时具有Hibernate 优点 & Mybatis优点功能,适用于承认以SQL为中心,同时又需求工具能自动能生成大量常用的SQL的应用。 在开发效率上,无需注解,自动使用大量内置SQL,轻易完成增删改查功能。数据模型支持Pojo,也支持Map/Lis..._beetsql

试论软件的可靠性及其保证_软件可靠性需求怎么写-程序员宅基地

文章浏览阅读2.5w次,点赞4次,收藏17次。试论软件的可靠性及其保证来源:ChinaItLab 用软件系统规模越做越大越复杂,其可靠性越来越难保证。应用本身对系统运行的可靠性要求越来越高,在一些关键的应用领域,如航空、航天等,其可靠性要求尤为重要,在银行等服务性行业,其软件系统的可靠性也直接关系到自身的声誉和生存发展竞争能力。  特别是软件可靠性比硬件可靠性更难保证,会严重影响整个系统的可靠性。在许多项目开发过程中,对可_软件可靠性需求怎么写

新手前端微信小程序img图片无法显示问题_微信小程序js引入图片前端不显示-程序员宅基地

文章浏览阅读2.5w次,点赞21次,收藏23次。最近自己在做毕设,是一个微信小程序,虽然自己有一点前端开发经验,以为小程序前端和这个差不多可以直接开撸,但是这两天被一些图片问题烦了好久。这也是自己第一次写博客,实在太生气了,网上也没找到自己想要的结果,所以写下来记录下来,顺便让和我一样错误的人知道咋解决,笑cry,虽然真的很低级的错误。以下是遇到的问题。 1:在开发者工具可以显示图片,手机预览,真机调试却看不到。 2:在最开始的ipho..._微信小程序js引入图片前端不显示

JSON百科全书:学习JSON看这一篇就够了-程序员宅基地

文章浏览阅读2.8k次,点赞10次,收藏51次。JSON 对象包含两个方法:用于解析 JavaScript Object Notation(JSON)的 parse() 方法,以及将对象/值转换为 JSON 字符串的 stringify() 方法。除了这两个方法,JSON 这个对象本身并没有其他作用,也不能被调用或者作为构造函数调用。_json

【电子基础】总结·嵌入式硬件基础_哈佛j80c电源板-程序员宅基地

文章浏览阅读1.8k次,点赞2次,收藏9次。嵌入式系统硬件基础By 成鹏致远第一章 常用硬件——>嵌入式系统常用的硬件器件,主要包括分立器件、光电半导体、逻辑IC、模拟IC以及存储器共五大类——>分立器件主要有:二极管、三极管、电阻、电容、电感以及场效应管等——>二极管的主要特性是单向导电性——>二极管按其用途可分为:整流二极管、稳压二极管、开关二极管、发光二极管等——>整流二级管是一种将交流电转变为直流电的半导体器件,主要用于各种低频整流_哈佛j80c电源板

组件三大属性,state,props,refs_组件自带的属性-程序员宅基地

文章浏览阅读673次。一,组件实例三大属性(1)state查看状态:在写好的组件实例上有一个属性,state,就代表这个组件的状态。接下来我们写一个有状态的组件:<body> <div id="test"></div> <script type="text/babel"> // 创建组件 class Component extends React.Component { // 初始化,调_组件自带的属性

随便推点

swagger 设置全局token_swagger加全局token-程序员宅基地

文章浏览阅读1.5k次,点赞2次,收藏5次。1. 在swaggerConfig 配置文件中定义一个bean如果不知道swaggerConfig可看之前发布swagger的配置文章https://blog.csdn.net/luChenH/article/details/90763812 @Bean SecurityScheme securityScheme() { return new ApiKey("token", "token", "header"); }名字根据自己需要变更,我这边就是tok._swagger加全局token

nginx + lua + redis 防刷和限流_nginx + lua + redis 限速带宽-程序员宅基地

文章浏览阅读3.1w次,点赞8次,收藏46次。防刷和限流的概念是:防刷的目的是为了防止有些IP来爬去我们的网页,获取我们的价格等信息。不像普通的搜索引擎,这种爬去行为我们经过统计最高每秒300次访问,平均每秒266次访问。由于我们的网站的页面都在CDN上,导致我们的CDN流量会定时冒尖。为了防止这种情况,打算将网页页面的访问从CDN切回主站。同时开启防刷功能,目前设置一秒200次访问即视为非法,会阻止10分钟的访问。限流的目的_nginx + lua + redis 限速带宽

hive 窗口函数总结及使用案例_hive 窗口函数的执行顺序-程序员宅基地

文章浏览阅读700次。1. 窗口函数和普通聚合函数的区别聚合函数是将多条记录合并为一条;窗口函数是每条记录都会执行,原来有几条记录最终执行完还是几条聚合函数也可以用于窗口函数:窗口函数在逻辑上的执行顺序是在FROM、JOIN、WHERE、GROUP BY 、HAVING 之后,在ORDER BY、LIMIT、SELECT DISTINCT之前。它执行之前GROUP BY的聚合过程已经完成了,所以不会再产生数据聚合。注:窗口函数是在 WHERE 之后执行的,所以如果 WHERE 子句需要用窗口函数作为条件,需要多套一层子_hive 窗口函数的执行顺序

Windows11 - 使用 sftp连接 CentOS 7,实现文件上传与下载_windows连接sftp-程序员宅基地

文章浏览阅读4.3k次。Windows11 -使用sftp连接CentOs 7,实现文件上传与下载_windows连接sftp

gflags的交叉编译_manually-specified variables were not used by the -程序员宅基地

文章浏览阅读2.6k次,点赞2次,收藏9次。gflags版本:gflags 2.2.2目录编译动态库的编译cmakelbw@DESKTOP-LBW22:/mnt/d/ref/gflags-master/_build$ cmake .. -DGFLAGS_NAMESPACE=gflags -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_SHARED_LIBS=ON -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc -DCMAKE_CXX_COMPILER=aarch64-li._manually-specified variables were not used by the project:

SpringBoot mysql 时区问题总结_servertimezone=gmt+8-程序员宅基地

文章浏览阅读1.6k次。寻找原因后端开发中经常mysql8.x的jdbc升级了,增加了时区(serverTimezone)属性,并且不允许为空。_servertimezone=gmt+8