通过Livy提交的spark作业抛出GSSException:未提供有效凭据(机制级别:找不到任何kerberos tg



我正在尝试使用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>"

它将帮助我们避免在流媒体作业中出现令牌过期问题。

最新更新