hbase官方网站声称的兼容是否是100%兼容?

根据[1]中的兼容矩阵,如下:

我们采用

hadoop3.1.2

hbase2.2.4

进行测试

$HBASE_HOME/logs/hbase-appleyuchi-master-Desktop.log

报错:

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:1092)
    at org.apache.hadoop.hbase.procedure2.store.wal.WALProcedureStore.recoverLease(WALProcedureStore.java:424)
    at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.init(ProcedureExecutor.java:586)
    at org.apache.hadoop.hbase.master.HMaster.createProcedureExecutor(HMaster.java:1523)
    at org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:938)
    at org.apache.hadoop.hbase.master.HMaster.startActiveMasterManager(HMaster.java:2124)
    at org.apache.hadoop.hbase.master.HMaster.lambda$run$0(HMaster.java:580)
    at java.lang.Thread.run(Thread.java:748)
2020-05-20 20:01:41,447 ERROR [master/Desktop:16000:becomeActiveMaster] master.HMaster: ***** ABORTING master desktop,16000,1589976098311: 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:1092)
    at org.apache.hadoop.hbase.procedure2.store.wal.WALProcedureStore.recoverLease(WALProcedureStore.java:424)
    at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.init(ProcedureExecutor.java:586)
    at org.apache.hadoop.hbase.master.HMaster.createProcedureExecutor(HMaster.java:1523)
    at org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:938)
    at org.apache.hadoop.hbase.master.HMaster.startActiveMasterManager(HMaster.java:2124)
    at org.apache.hadoop.hbase.master.HMaster.lambda$run$0(HMaster.java:580)
    at java.lang.Thread.run(Thread.java:748)

根据[1]

hbase.unsafe.stream.capability.enforce=false存在丢失数据的风险,根本无法用于生产环境

根据[2]中进行自行编译后(链接中是3.2.1的,记得要改成3.1.2),

hbase.unsafe.stream.capability.enforce=true

下上述报错消失。

所以官网声称的兼容的意思是:

这个兼容包含了你自己编译的版本,并不是指从官网下载的就一定100%兼容。

 

Reference:

[1]HBase 2.2.2 on Hadoop 3.2.1源码编译

[2]编译hbase2.2.4+hadoop3.2.1

你可能感兴趣的:(Hbase)