Jaehui Lee created HBASE-29482:
----------------------------------

             Summary: Bulkload fails with viewfs authentication error
                 Key: HBASE-29482
                 URL: https://issues.apache.org/jira/browse/HBASE-29482
             Project: HBase
          Issue Type: Bug
            Reporter: Jaehui Lee
            Assignee: Jaehui Lee


When performing a bulkload operation where the HFiles are located on a 
federated HDFS and accessed via ViewFS paths, a Kerberos authentication error 
occurs.

 
{code:java}
2025-07-22T17:38:45,248 WARN  
[RpcServer.default.FPBQ.Fifo.handler=26,queue=2,port=16020] ipc.Client: 
Exception encountered while connecting to the server {host}
org.apache.hadoop.security.AccessControlException: Client cannot authenticate 
via:[TOKEN, KERBEROS]
        at 
org.apache.hadoop.security.SaslRpcClient.selectSaslClient(SaslRpcClient.java:179)
 ~[hadoop-common-3.4.1.jar:?]
        at 
org.apache.hadoop.security.SaslRpcClient.saslConnect(SaslRpcClient.java:399) 
~[hadoop-common-3.4.1.jar:?]
        at 
org.apache.hadoop.ipc.Client$Connection.setupSaslConnection(Client.java:578) 
~[hadoop-common-3.4.1.jar:?]
        at org.apache.hadoop.ipc.Client$Connection.access$2100(Client.java:364) 
~[hadoop-common-3.4.1.jar:?]
        at org.apache.hadoop.ipc.Client$Connection$2.run(Client.java:799) 
~[hadoop-common-3.4.1.jar:?]
        at org.apache.hadoop.ipc.Client$Connection$2.run(Client.java:795) 
~[hadoop-common-3.4.1.jar:?]
        at 
java.security.AccessController.doPrivileged(AccessController.java:714) ~[?:?]
        at javax.security.auth.Subject.doAs(Subject.java:525) ~[?:?]
        at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1953)
 ~[hadoop-common-3.4.1.jar:?]
        at 
org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:795) 
~[hadoop-common-3.4.1.jar:?]
        at org.apache.hadoop.ipc.Client$Connection.access$3800(Client.java:364) 
~[hadoop-common-3.4.1.jar:?]
        at org.apache.hadoop.ipc.Client.getConnection(Client.java:1649) 
~[hadoop-common-3.4.1.jar:?]
        at org.apache.hadoop.ipc.Client.call(Client.java:1473) 
~[hadoop-common-3.4.1.jar:?]
        at org.apache.hadoop.ipc.Client.call(Client.java:1426) 
~[hadoop-common-3.4.1.jar:?]
        at 
org.apache.hadoop.ipc.ProtobufRpcEngine2$Invoker.invoke(ProtobufRpcEngine2.java:258)
 ~[hadoop-common-3.4.1.jar:?]
        at 
org.apache.hadoop.ipc.ProtobufRpcEngine2$Invoker.invoke(ProtobufRpcEngine2.java:139)
 ~[hadoop-common-3.4.1.jar:?]
        at jdk.proxy2.$Proxy32.checkAccess(Unknown Source) ~[?:?]
        at 
org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.lambda$checkAccess$93(ClientNamenodeProtocolTranslatorPB.java:1464)
 ~[hadoop-hdfs-client-3.4.1.jar:?]
        at 
org.apache.hadoop.ipc.internal.ShadedProtobufHelper.ipc(ShadedProtobufHelper.java:160)
 ~[hadoop-common-3.4.1.jar:?]
        at 
org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.checkAccess(ClientNamenodeProtocolTranslatorPB.java:1464)
 ~[hadoop-hdfs-client-3.4.1.jar:?]
        at 
jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
 ~[?:?]
        at java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
        at 
org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:437)
 ~[hadoop-common-3.4.1.jar:?]
        at 
org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invokeMethod(RetryInvocationHandler.java:170)
 ~[hadoop-common-3.4.1.jar:?]
        at 
org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invoke(RetryInvocationHandler.java:162)
 ~[hadoop-common-3.4.1.jar:?]
        at 
org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invokeOnce(RetryInvocationHandler.java:100)
 ~[hadoop-common-3.4.1.jar:?]
        at 
org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:366)
 ~[hadoop-common-3.4.1.jar:?]
        at jdk.proxy2.$Proxy33.checkAccess(Unknown Source) ~[?:?]
        at org.apache.hadoop.hdfs.DFSClient.checkAccess(DFSClient.java:2987) 
~[hadoop-hdfs-client-3.4.1.jar:?]
        at 
org.apache.hadoop.hdfs.DistributedFileSystem$66.doCall(DistributedFileSystem.java:3247)
 ~[hadoop-hdfs-client-3.4.1.jar:?]
        at 
org.apache.hadoop.hdfs.DistributedFileSystem$66.doCall(DistributedFileSystem.java:3244)
 ~[hadoop-hdfs-client-3.4.1.jar:?]
        at 
org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
 ~[hadoop-common-3.4.1.jar:?]
        at 
org.apache.hadoop.hdfs.DistributedFileSystem.access(DistributedFileSystem.java:3257)
 ~[hadoop-hdfs-client-3.4.1.jar:?]
        at 
org.apache.hadoop.fs.FilterFileSystem.access(FilterFileSystem.java:473) 
~[hadoop-common-3.4.1.jar:?]
        at 
org.apache.hadoop.fs.viewfs.ChRootedFileSystem.access(ChRootedFileSystem.java:256)
 ~[hadoop-common-3.4.1.jar:?]
        at 
org.apache.hadoop.fs.viewfs.ViewFileSystem.access(ViewFileSystem.java:581) 
~[hadoop-common-3.4.1.jar:?]
        at 
org.apache.hadoop.hbase.regionserver.HStore.assertBulkLoadHFileOk(HStore.java:607)
 ~[hbase-server-2.5.11-hadoop3.jar:2.5.11-hadoop3]
        at 
org.apache.hadoop.hbase.regionserver.HRegion.bulkLoadHFiles(HRegion.java:6737) 
~[hbase-server-2.5.11-hadoop3.jar:2.5.11-hadoop3]
        at 
org.apache.hadoop.hbase.regionserver.SecureBulkLoadManager$1.run(SecureBulkLoadManager.java:288)
 ~[hbase-server-2.5.11-hadoop3.jar:2.5.11-hadoop3]
        at 
org.apache.hadoop.hbase.regionserver.SecureBulkLoadManager$1.run(SecureBulkLoadManager.java:263)
 ~[hbase-server-2.5.11-hadoop3.jar:2.5.11-hadoop3]
        at 
java.security.AccessController.doPrivileged(AccessController.java:400) ~[?:?]
        at javax.security.auth.Subject.doAs(Subject.java:453) ~[?:?]
        at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1930)
 ~[hadoop-common-3.4.1.jar:?]
        at 
org.apache.hadoop.hbase.regionserver.SecureBulkLoadManager.secureBulkLoadHFiles(SecureBulkLoadManager.java:263)
 ~[hbase-server-2.5.11-hadoop3.jar:2.5.11-hadoop3]
        at 
org.apache.hadoop.hbase.regionserver.RSRpcServices.bulkLoadHFile(RSRpcServices.java:2443)
 ~[hbase-server-2.5.11-hadoop3.jar:2.5.11-hadoop3]
        at 
org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:45008)
 ~[hbase-protocol-shaded-2.5.11-hadoop3.jar:2.5.11-hadoop3]
        at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:415) 
~[hbase-server-2.5.11-hadoop3.jar:2.5.11-hadoop3]
        at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124) 
~[hbase-server-2.5.11-hadoop3.jar:2.5.11-hadoop3]
        at org.apache.hadoop.hbase.ipc.RpcHandler.run(RpcHandler.java:102) 
~[hbase-server-2.5.11-hadoop3.jar:2.5.11-hadoop3]
        at org.apache.hadoop.hbase.ipc.RpcHandler.run(RpcHandler.java:82) 
~[hbase-server-2.5.11-hadoop3.jar:2.5.11-hadoop3]  {code}
 

This happens because ViewFileSystem cannot generate delegation tokens properly 
for federated HDFS accessed through ViewFS paths. The simplest solution is to 
use the resolved HDFS paths instead of ViewFS paths when performing the 
bulkload.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to