编程语言
首页 > 编程语言> > hbase 启动 java.lang.IllegalStateException: The procedure WAL relies on the ability to hsync for prope

hbase 启动 java.lang.IllegalStateException: The procedure WAL relies on the ability to hsync for prope

作者:互联网

问题场景

今天刚装完hbase,启动后,主节点的 HMaster 直接挂了,但是  backup-masters 启动了,查看了 主节点的 master 的日志如下:

2022-05-09 15:51:16,355 INFO  [Thread-14] wal.ProcedureWALFile: Archiving hdfs://hadoop201:8020/hbase/MasterProcWALs/pv2-00000000000000000004.log to hdfs://hadoop201:8020/hbase/oldWALs/pv2-00000000000000000004.log
2022-05-09 15:51:16,423 ERROR [Thread-14] master.HMaster: Failed to become active master
java.lang.IllegalStateException: The procedure WAL relies on the ability to hsync for proper operation during component failures, but the underlying filesystem does not support doing so. Please check the config value of 'hbase.procedure.store.wal.use.hsync' to set the desired level of robustness and ensure the config value of 'hbase.wal.dir' points to a FileSystem mount that can provide it.
        at org.apache.hadoop.hbase.procedure2.store.wal.WALProcedureStore.rollWriter(WALProcedureStore.java:1083)
        at org.apache.hadoop.hbase.procedure2.store.wal.WALProcedureStore.recoverLease(WALProcedureStore.java:421)
        at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.init(ProcedureExecutor.java:611)
        at org.apache.hadoop.hbase.master.HMaster.createProcedureExecutor(HMaster.java:1407)
        at org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:853)
        at org.apache.hadoop.hbase.master.HMaster.startActiveMasterManager(HMaster.java:2241)
        at org.apache.hadoop.hbase.master.HMaster.lambda$run$0(HMaster.java:567)
        at java.lang.Thread.run(Thread.java:748)
2022-05-09 15:51:16,429 ERROR [Thread-14] master.HMaster: ***** ABORTING master hadoop201,16000,1652082659778: Unhandled exception. Starting shutdown. *****
java.lang.IllegalStateException: The procedure WAL relies on the ability to hsync for proper operation during component failures, but the underlying filesystem does not support doing so. Please check the config value of 'hbase.procedure.store.wal.use.hsync' to set the desired level of robustness and ensure the config value of 'hbase.wal.dir' points to a FileSystem mount that can provide it.
        at org.apache.hadoop.hbase.procedure2.store.wal.WALProcedureStore.rollWriter(WALProcedureStore.java:1083)
        at org.apache.hadoop.hbase.procedure2.store.wal.WALProcedureStore.recoverLease(WALProcedureStore.java:421)
        at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.init(ProcedureExecutor.java:611)
        at org.apache.hadoop.hbase.master.HMaster.createProcedureExecutor(HMaster.java:1407)
        at org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:853)
        at org.apache.hadoop.hbase.master.HMaster.startActiveMasterManager(HMaster.java:2241)
        at org.apache.hadoop.hbase.master.HMaster.lambda$run$0(HMaster.java:567)
        at java.lang.Thread.run(Thread.java:748)

解决方案

 在 hbase-site.xml  增加一个配置项

如下

<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>

 再次启动已经正常了。

标签:java,doing,HMaster,hadoop,apache,underlying,proper,org,hbase
来源: https://www.cnblogs.com/wdh01/p/16247843.html