Uploaded image for project: 'Spark'
  1. Spark
  2. SPARK-27554

org.apache.hadoop.security.AccessControlException: Client cannot authenticate via:[TOKEN, KERBEROS]

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Invalid
    • 2.4.0, 2.4.1
    • None
    • Scheduler, Spark Core
    • None
    • cdh5.16.1

      spark2.4.0

      spark2.4.1

      spark2.4.2

    Description

      #basic env 
       JAVA_HOME=/usr/java/jdk1.8.0_181
       HADOOP_CONF_DIR=/etc/hadoop/conf
       export SPARK_HOME=/opt/software/spark/spark-2.4.2
      
      #project env
       KERBEROS_USER=hdfs@HADOOP.COM
       KERBEROS_USER_KEYTAB=/etc/kerberos/hdfs.keytab
       PROJECT_MAIN_CLASS=com.jy.dwexercise.OrderDeliveryModel
       PROJECT_JAR=/opt/maintain/scripts/bas-1.0-SNAPSHOT.jar
      
      #spark resource
       DRIVER_MEMORY=4G
       EXECUTORS_NUM=20
       EXECUTOR_MEMORY=6G
       EXECUTOR_VCORES=4
       QUEQUE=idss
      
      #submit job
       /opt/software/spark/spark-2.4.2/bin/spark-submit \
       --master yarn \
       --deploy-mode cluster \
       --queue ${QUEQUE} \
       --driver-memory ${DRIVER_MEMORY} \
       --num-executors ${EXECUTORS_NUM} \
       --executor-memory ${EXECUTOR_MEMORY} \
       --executor-cores ${EXECUTOR_VCORES} \
       --principal ${KERBEROS_USER} \
       --keytab ${KERBEROS_USER_KEYTAB} \
       --class ${PROJECT_MAIN_CLASS} \
       --conf "spark.yarn.archive=hdfs://jybigdata/spark/spark-archive-20190422.zip" \
       --conf "spark.sql.autoBroadcastJoinThreshold=20971520" \
       ${PROJECT_JAR}
      

       

      *ERROR log:*
      
      19/04/24 13:35:07 INFO ConfiguredRMFailoverProxyProvider: Failing over to rm78
       19/04/24 13:35:07 WARN UserGroupInformation: PriviledgedActionException as:hdfs (auth:SIMPLE) cause:org.apache.hadoop.security.AccessControlException: Client cannot authenticate via:[TOKEN, KERBEROS]
       19/04/24 13:35:07 WARN Client: Exception encountered while connecting to the server : org.apache.hadoop.security.AccessControlException: Client cannot authenticate via:[TOKEN, KERBEROS]
       19/04/24 13:35:07 WARN UserGroupInformation: PriviledgedActionException as:hdfs (auth:SIMPLE) cause:java.io.IOException: org.apache.hadoop.security.AccessControlException: Client cannot authenticate via:[TOKEN, KERBEROS]
       19/04/24 13:35:07 INFO RetryInvocationHandler: Exception while invoking getClusterMetrics of class ApplicationClientProtocolPBClientImpl over rm78 after 10 fail over attempts. Trying to fail over immediately.
       java.io.IOException: Failed on local exception: java.io.IOException: org.apache.hadoop.security.AccessControlException: Client cannot authenticate via:[TOKEN, KERBEROS]; Host Details : local host is: "hadoopnode143/192.168.209.143"; destination host is: "hadoopmanager136":8032; 
       at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:772)
       at org.apache.hadoop.ipc.Client.call(Client.java:1508)
       at org.apache.hadoop.ipc.Client.call(Client.java:1441)
       at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:231)
       at com.sun.proxy.$Proxy25.getClusterMetrics(Unknown Source)
       at org.apache.hadoop.yarn.api.impl.pb.client.ApplicationClientProtocolPBClientImpl.getClusterMetrics(ApplicationClientProtocolPBClientImpl.java:202)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       at java.lang.reflect.Method.invoke(Method.java:498)
       at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:258)
       at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:104)
       at com.sun.proxy.$Proxy26.getClusterMetrics(Unknown Source)
       at org.apache.hadoop.yarn.client.api.impl.YarnClientImpl.getYarnClusterMetrics(YarnClientImpl.java:483)
       at org.apache.spark.deploy.yarn.Client$$anonfun$submitApplication$1.apply(Client.scala:164)
       at org.apache.spark.deploy.yarn.Client$$anonfun$submitApplication$1.apply(Client.scala:164)
       at org.apache.spark.internal.Logging$class.logInfo(Logging.scala:54)
       at org.apache.spark.deploy.yarn.Client.logInfo(Client.scala:59)
       at org.apache.spark.deploy.yarn.Client.submitApplication(Client.scala:163)
       at org.apache.spark.scheduler.cluster.YarnClientSchedulerBackend.start(YarnClientSchedulerBackend.scala:57)
       at org.apache.spark.scheduler.TaskSchedulerImpl.start(TaskSchedulerImpl.scala:183)
       at org.apache.spark.SparkContext.<init>(SparkContext.scala:501)
       at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2520)
       at org.apache.spark.sql.SparkSession$Builder$$anonfun$7.apply(SparkSession.scala:935)
       at org.apache.spark.sql.SparkSession$Builder$$anonfun$7.apply(SparkSession.scala:926)
       at scala.Option.getOrElse(Option.scala:121)
       at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:926)
       at com.jiuye.dwexercise.OrderDeliveryModel$.<init>(OrderDeliveryModel.scala:25)
       at com.jiuye.dwexercise.OrderDeliveryModel$.<clinit>(OrderDeliveryModel.scala)
       at com.jiuye.dwexercise.OrderDeliveryModel$$anonfun$5.apply(OrderDeliveryModel.scala:55)
       at com.jiuye.dwexercise.OrderDeliveryModel$$anonfun$5.apply(OrderDeliveryModel.scala:55)
       at org.apache.spark.sql.catalyst.expressions.GeneratedClass$GeneratedIteratorForCodegenStage49.processNext(Unknown Source)
       at org.apache.spark.sql.execution.BufferedRowIterator.hasNext(BufferedRowIterator.java:43)
       at org.apache.spark.sql.execution.WholeStageCodegenExec$$anonfun$13$$anon$1.hasNext(WholeStageCodegenExec.scala:636)
       at org.apache.spark.sql.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:255)
       at org.apache.spark.sql.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:247)
       at org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$24.apply(RDD.scala:836)
       at org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$24.apply(RDD.scala:836)
       at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52)
       at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324)
       at org.apache.spark.rdd.RDD.iterator(RDD.scala:288)
       at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52)
       at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324)
       at org.apache.spark.rdd.RDD.iterator(RDD.scala:288)
       at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:90)
       at org.apache.spark.scheduler.Task.run(Task.scala:121)
       at org.apache.spark.executor.Executor$TaskRunner$$anonfun$10.apply(Executor.scala:408)
       at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1360)
       at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:414)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
       at java.lang.Thread.run(Thread.java:748)
       Caused by: java.io.IOException: org.apache.hadoop.security.AccessControlException: Client cannot authenticate via:[TOKEN, KERBEROS]
       at org.apache.hadoop.ipc.Client$Connection$1.run(Client.java:718)
       at java.security.AccessController.doPrivileged(Native Method)
       at javax.security.auth.Subject.doAs(Subject.java:422)
       at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1924)
       at org.apache.hadoop.ipc.Client$Connection.handleSaslConnectionFailure(Client.java:681)
       at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:769)
       at org.apache.hadoop.ipc.Client$Connection.access$3000(Client.java:396)
       at org.apache.hadoop.ipc.Client.getConnection(Client.java:1557)
       at org.apache.hadoop.ipc.Client.call(Client.java:1480)
       ... 50 more
       Caused by: org.apache.hadoop.security.AccessControlException: Client cannot authenticate via:[TOKEN, KERBEROS]
       at org.apache.hadoop.security.SaslRpcClient.selectSaslClient(SaslRpcClient.java:172)
       at org.apache.hadoop.security.SaslRpcClient.saslConnect(SaslRpcClient.java:396)
       at org.apache.hadoop.ipc.Client$Connection.setupSaslConnection(Client.java:594)
       at org.apache.hadoop.ipc.Client$Connection.access$2000(Client.java:396)
       at org.apache.hadoop.ipc.Client$Connection$2.run(Client.java:761)
       at org.apache.hadoop.ipc.Client$Connection$2.run(Client.java:757)
       at java.security.AccessController.doPrivileged(Native Method)
       at javax.security.auth.Subject.doAs(Subject.java:422)
       at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1924)
       at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:756)
       ... 53 more
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            1028344078@qq.com Jepson
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - 96h
                96h
                Remaining:
                Remaining Estimate - 96h
                96h
                Logged:
                Time Spent - Not Specified
                Not Specified