'Spark doesn't acknowledge Kerberos authentication and application fail when delegation token is issued

I'm using spark to read data files from hdfs.

When I do a spark action, a spark exception is raised:

Caused by: org.apache.hadoop.ipc.RemoteException(java.io.IOException): Delegation Token can be issued only with kerberos or web authentication

In the logs before the execption is thrown I can see:

 WARN   [hadoop.security.UserGroupInformation] PriviledgedActionException as:principal (auth:SIMPLE) cause:org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.ipc.StandbyException): Operation category READ is not supported in state standby. Visit https://s.apache.org/sbnn-error
[21/02/22 17:27:17.439] WARN   [hadoop.ipc.Client] Exception encountered while connecting to the server : org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.ipc.StandbyException): Operation category READ is not supported in state standby. Visit https://s.apache.org/sbnn-error
[21/02/22 17:27:17.440] WARN   [hadoop.security.UserGroupInformation] PriviledgedActionException as:principal (auth:SIMPLE) cause:org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.ipc.StandbyException): Operation category READ is not supported in state standby. Visit https://s.apache.org/sbnn-error

Which is really weird because I set the spark submit config with kerberos using --keytab and --principal configs:

spark.master                     yarn-cluster
spark.app.name                   app
spark.submit.deployMode          cluster
spark.yarn.principal             pincipal/principal.com
spark.yarn.keytab                all.keytab

spark.driver.memory              4G
spark.executor.memory            8G
spark.executor.instances         4
spark.executor.cores             8

spark.deploy.recoveryMode        ZOOKEEPER
spark.deploy.zookeeper.url       jdbc:phoenix:m1,m2,m3,m4:2181:/hbase
spark.driver.extraJavaOptions    -XX:MaxPermSize=1024M -Dlog4j.configuration=log4j.xml
spark.executor.extraJavaOptions  -Dlog4j.configuration=log4j.xml   

I don't understand why the delegation token wouldn't be possible since the it is set up as kerberos auth.

I also don't understand why it displays those warnings as if the authentication mode of my spark was set as SIMPLE. Is spark ignoring my config ?

I have 2 environment, one on which the application works properly but I don't know what config I should look at.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source