[ https://issues.apache.org/jira/browse/TEZ-4638 ]
Dong0829 deleted comment on TEZ-4638: ------------------------------- was (Author: li0829): use PR to replace the patch > Client authenticate failure when using Kerberos if there is big DAG plan > needed HDFS > ------------------------------------------------------------------------------------ > > Key: TEZ-4638 > URL: https://issues.apache.org/jira/browse/TEZ-4638 > Project: Apache Tez > Issue Type: Bug > Affects Versions: 0.10.2 > Reporter: Dong0829 > Priority: Major > Attachments: TEZ-4638.patch > > > Whenever the DAG plan is big and exceed the limit, the DAG plan will be > uploaded to HDFS. After TEZ AM gets this request, it will need to go to HDFS > to get the data, but in kerberos cluster, it will face below error: > {quote}{{10.239.88.12:0. Failed on local exception: java.io.IOException: > org.apache.hadoop.security.AccessControlException: Client cannot authenticate > via:[TOKEN, KERBEROS] > at > java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) > .... > org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolBlockingPBServerImpl.submitDAG(DAGClientAMProtocolBlockingPBServerImpl.java:172) > at > org.apache.tez.dag.api.client.rpc.DAGClientAMProtocolRPC$DAGClientAMProtocol$2.callBlockingMethod(DAGClientAMProtocolRPC.java:8519) > at > org.apache.hadoop.ipc.ProtobufRpcEngine$Server.processCall(ProtobufRpcEngine.java:484) > at > org.apache.hadoop.ipc.ProtobufRpcEngine2$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine2.java:595) > at > org.apache.hadoop.ipc.ProtobufRpcEngine2$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine2.java:573) > at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1227) > at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:1226) > at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:1145) > at > java.base/java.security.AccessController.doPrivileged(AccessController.java:712) > at java.base/javax.security.auth.Subject.doAs(Subject.java:439) > at > org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1899) > at org.apache.hadoop.ipc.Server$Handler.run(Server.java:3388)}} > {quote} > For the RCA, its because the submitDAG request is handled by the RPC Sever, > and the hadoop server will use remote RPC client user as the current UGI > using doAs (as above stack) > For the remote UGI, it has no context for the Tez AM which has the tokens > including KMS, HDFS and so on, so when it talking to the HDFS, it will fail. -- This message was sent by Atlassian Jira (v8.20.10#820010)