3.18. Problem: Short circuit access failed warning in the HBase log file.

The following warning may be reported in the HBase log file when a non-default value is used for the HBase user but a corresponding change is not made to HDFS configuration. Default value of the HBase user is hbase.

WARN org.apache.hadoop.hdfs.DFSClient: Short circuit access failed
org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: Can't continue with getBlockLocalPathInfo() authorization. The user foo is not allowed to call getBlockLocalPathInfo
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at org.apache.hadoop.ipc.RemoteException.instantiateException(RemoteException.java:95)
        at org.apache.hadoop.ipc.RemoteException.unwrapRemoteException(RemoteException.java:57)
        at org.apache.hadoop.hdfs.DFSClient.getLocalBlockReader(DFSClient.java:513)
        at org.apache.hadoop.hdfs.DFSClient.access$800(DFSClient.java:78)
        at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.blockSeekTo(DFSClient.java:2228)
        at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.read(DFSClient.java:2381)
        at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.read(DFSClient.java:2309)
        at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:320)
        at java.io.DataInputStream.readUTF(DataInputStream.java:572)
        at java.io.DataInputStream.readUTF(DataInputStream.java:547)
        at org.apache.hadoop.hbase.util.FSUtils.getClusterId(FSUtils.java:468)
        at org.apache.hadoop.hbase.master.MasterFileSystem.checkRootDir(MasterFileSystem.java:369)
        at org.apache.hadoop.hbase.master.MasterFileSystem.createInitialFileSystemLayout(MasterFileSystem.java:130)
        at org.apache.hadoop.hbase.master.MasterFileSystem.<init>(MasterFileSystem.java:115)
        at org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:514)
        at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:377)
        at java.lang.Thread.run(Thread.java:662)

 3.18.1. Solution

Update the dfs.block.local-path-access.user property based on the value of $HBASE_USER using the instructions provided here.

$HBASE_USER is the HBase service user. By default, HBase service user is hbase.


loading table of contents...