一、介绍
报错信息:文章来源地址https://www.toymoban.com/news/detail-758524.html
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:ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
- 请注意一定查看(***/hbase*/logs/*****.log)文件,此文件有具体的错误信息。请按照具体的错误信息进行处理。
文章来源:https://www.toymoban.com/news/detail-758524.html
到了这里,关于HBase启动后查询报错:ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!