You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HBase区域OFFLINE且无法分配:无效主机名致日志拆分失败求助

HBase多网卡配置引发的无效主机名及区域离线问题

为配置HBase多网卡,我们将hbase.regionserver.ipc.address和hbase.master.ipc.address设置为0.0.0.0,触发了早年已发现的主机名解析问题。恢复配置后,有70个区域处于OFFLINE状态,仍绑定到主机名为0:0:0:0:0:0:0:0的Dead Region Server。

重启Master本应转换区域状态,但因主机名无效,处理M_SERVER_SHUTDOWN事件时尝试拆分日志失败,报错信息如下:

2024-04-24 11:02:26,475 ERROR [MASTER_SERVER_OPERATIONS-master:60000-1] executor.EventHandler: Caught throwable while processing event M_SERVER_SHUTDOWN

java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: 0:0:0:0:0:0:0:0,60020,1713708572030-splitting
    at org.apache.hadoop.fs.Path.initialize(Path.java:206)
    at org.apache.hadoop.fs.Path.<init>(Path.java:172)
    at org.apache.hadoop.fs.Path.<init>(Path.java:94)
    at org.apache.hadoop.fs.Path.suffix(Path.java:354)
    at org.apache.hadoop.hbase.master.MasterFileSystem.getLogDirs(MasterFileSystem.java:315)
    at org.apache.hadoop.hbase.master.MasterFileSystem.splitLog(MasterFileSystem.java:405)
    at org.apache.hadoop.hbase.master.MasterFileSystem.splitLog(MasterFileSystem.java:383)
    at org.apache.hadoop.hbase.master.MasterFileSystem.splitLog(MasterFileSystem.java:281)
    at org.apache.hadoop.hbase.master.handler.ServerShutdownHandler.process(ServerShutdownHandler.java:196)
    at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:128)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.URISyntaxException: Relative path in absolute URI: 0:0:0:0:0:0:0:0,60020,1713708572030-splitting
    at java.net.URI.checkPath(URI.java:1823)
    at java.net.URI.<init>(URI.java:745)
    at org.apache.hadoop.fs.Path.initialize(Path.java:203)

经测试,Hadoop不认可包含该无效主机名的文件名:
执行以下命令:

/home/gs/Dev/hadoop/bin/hdfs dfs -mkdir /hbase/WALs_mike/0:0:0:0:0:0:0:0,60020,1713708572030-splitting

返回错误:/hbase/WALs_mike/0:0:0:0:0:0:0:0,60020,1713708572030-splitting is not a valid DFS filename

我们使用的HBase版本为0.96.1.1,核心问题是代码无法处理无效主机名0:0:0:0:0:0:0:0。现寻求解决以下两个问题:

  • 如何禁用M_SERVER_SHUTDOWN事件处理时的日志拆分?
  • 如何修改这些区域关联的主机名?

已尝试使用hbck及HBase Shell的assign、move、unassign命令,均未生效,报错信息如下:

2024-04-24 08:15:19,492 INFO  [RpcServer.handler=20,port=60000] master.AssignmentManager: Skip assigning c,\x92I$\x92I$\x92I$\x92I$\x92I$\x90,1330810355551.d31a033cd7810e347639e12833969754., it's host 0:0:0:0:0:0:0:0,60020,1713708572030 is dead but not processed yet

内容的提问来源于stack exchange,提问作者Mike Mills

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 04:45:10