【问题标题】:Kerberos Auth With SparkLauncher - "Cannot locate KDC" Error使用 SparkLauncher 进行 Kerberos 身份验证 - “找不到 KDC”错误
【发布时间】:2021-03-13 19:50:14
【问题描述】:

我们正在尝试从使用 spark-submit 转移到使用 SparkLauncher(在 Cloudera Hadoop 上运行的 Spark 2.4)的编程解决方案,并且遇到了这个问题:

Exception javax.security.auth.login.LoginException: Cannot locate KDC 

关于调用startApplication()后作业进程的错误输出流。

启动器配置了与 spark-submit 相同的设置,包括设置“spark.kerberos.principal”和“spark.kerberos.keytab”(也尝试使用 spark.yarn 前缀,以及设置 --principle 和 - -keytab 以及 setSparkArg() - 但这些属性不是问题)。

尽管 krb5.conf 位于所有机器和驱动程序的默认位置,但我尝试设置

.setConf("spark.executor.extraJavaOptions", "-Djava.security.krb5.conf=/etc/krb5.conf")
.setConf("spark.driver.extraJavaOptions", "-Djava.security.krb5.conf=/etc/krb5.conf")

同样,结果相同。

在 spark-submit 调用中没有其他与 auth/kerberos 相关的 conf 设置(仅设置了 principal 和 keytab),并且所有其他 conf 设置都在 Launcher 上复制。

SparkLauncher 的输出确认所有 Spark 属性均按预期设置。

“Cannot locate KDC”表示没有找到krb5.conf文件,但是如果它在默认位置并且spark-submit明显找到它怎么会呢?

【问题讨论】:

  • “无法定位 KDC”可能并不意味着 krb5.conf 不存在,但可能是 krb5.conf 的配置问题。您可以检查所有机器上的 krb5.conf 是否具有相同的配置。如果是,您可以尝试在任何机器kinit <principal_name> -kt <path_to_keytab_file> 上使用 keytab 进行手动身份验证,看看效果如何。
  • 来自-Djava.security.debug=gssloginconfig,configfile,configparser,logincontext 的调试跟踪可以准确地解释当 JAAS 尝试连接到 KDC 时会发生什么。
  • 如果你不害怕大量神秘的东西,也可以试试-Dsun.security.krb5.debug=true
  • @SyamSankar 我知道 krb5.confs 很好,因为使用 k5start(类似于 kinit)启动的 spark-submit 可以工作。
  • 需要明确的是,由于相同的设置和相同的 krb5 与 spark-submit 一起使用,这几乎必须归结为它与 SparkLauncher 之间的一些差异。

标签: scala apache-spark hadoop cloudera


【解决方案1】:

此错误不一定意味着它无法找到您的 krb5.conf 文件。当您的 krb5.conf 文件不包含您的主体的正确域或领域规范时,也会出现这种情况。

例如,如果您的主体是my_principal@MY.NEW.REALM.COM,但您的 krb5.conf 文件只指定了my_principal@MY.OLD.REALM.COM,您也会收到此错误。

此外,如果您的 krb5.conf 位于默认位置 (/etc/krb5.conf) 以外的位置,我在设置 javaExtraOpts 时遇到问题。我发现在运行之前更新环境变量有帮助:export SPARK_SUBMIT_OPTS="-Djava.security.krb5.conf=/path/to/krb5-new.conf"

最后,我发现在 spark-submit 中设置 --principle 和 --keytab 参数实际上会导致问题,删除这些会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    相关资源
    最近更新 更多