Duo Zhang commented on HBASE-20145:

The meaning for this exception is that, the FSDataOutputStream which is used 
for logging does not support hflush/hsync, which is not acceptable since 
calling hflush/hsync on the stream does not mean the data is persistent. This 
works for 1.2.6 just because we do not have the check in the code base of 
1.2.6, but this can lead to data loss.

This usually happens when if the file system is not HDFS, for example, 
S3FileSystem. And IIRC there is a issue for deploying HBase with EC enabled. 
For a OutputStream which supports EC then hflush/hsync will not work.

And we haven't tested with hadoop trunk version yet. No sure what is the real 


> HMaster start fails with IllegalStateException when HADOOP_HOME is set
> ----------------------------------------------------------------------
>                 Key: HBASE-20145
>                 URL: https://issues.apache.org/jira/browse/HBASE-20145
>             Project: HBase
>          Issue Type: Bug
>         Environment: HBase-2.0-beta1.
> Hadoop trunk version.
> java version "1.8.0_144"
>            Reporter: Rohith Sharma K S
>            Priority: Critical
> It is observed that HMaster start is failed when HADOOP_HOME is set as env 
> while starting HMaster. HADOOP_HOME is pointing to Hadoop trunk version.
> {noformat}
> 2018-03-07 16:59:52,654 ERROR [master//] 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:1036)
>     at 
> org.apache.hadoop.hbase.procedure2.store.wal.WALProcedureStore.recoverLease(WALProcedureStore.java:374)
>     at 
> org.apache.hadoop.hbase.procedure2.ProcedureExecutor.start(ProcedureExecutor.java:532)
>     at 
> org.apache.hadoop.hbase.master.HMaster.startProcedureExecutor(HMaster.java:1232)
>     at 
> org.apache.hadoop.hbase.master.HMaster.startServiceThreads(HMaster.java:1145)
>     at 
> org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:837)
>     at 
> org.apache.hadoop.hbase.master.HMaster.startActiveMasterManager(HMaster.java:2026)
>     at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:547)
>     at java.lang.Thread.run(Thread.java:748)
> {noformat}
> The same configs is working in HBase-1.2.6 build properly. 

This message was sent by Atlassian JIRA

Reply via email to