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)
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
.