我正在尝试使用livy启动我的spark批处理作业。从日志中,我看到启动运行,但在尝试访问配置单元元存储时失败,并出现以下kerberos错误:
GSSException:未提供有效凭据(机制级别:失败查找任何kerberos(t(
当我使用spark-submit命令启动相同的作业时,它运行良好。但是,在spark-submit命令中,我传递keytab和principal(--keytab,--principal(。
我尝试在livy rest调用中使用参数spark.yarn.keytab和spark.yar.principal传递keytab和principal。添加这些选项会引发以下错误:
错误:只能为--proxy用户或--principal中的一个提供
即使我在curl请求中没有提供proxyUser参数。
如果你知道如何解决这个问题,请告诉我
我们可以在livyjson中传递keytab和principal。请在下面查找传递参数。
"livy.server.auth.type":"kerberos",
"livy.server.auth.kerberos.keytab":"<hdfs_location>/<keytab_file>",
"livy.server.auth.kerberos.principal":"<Principal_name>",
"livy.server.launch.kerberos.keytab":"<hdfs_location>/<keytab_file>",
"livy.server.launch.kerberos.principal":"<Principal_name>"
它将帮助我们避免在流媒体作业中出现令牌过期问题。