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
相关产品推荐
相关产品推荐

