【问题标题】:Launching a Spark-Submit job under Kerberos for Kafka在 Kerberos 下为 Kafka 启动 Spark-Submit 作业
【发布时间】:2018-04-19 12:28:33
【问题描述】:

通过修补,我已经能够使用以下命令部分启动 spark 提交作业,但是在启动后不久它就会崩溃并给我下面概述的异常:

Spark 提交命令:

su spark -c 'export SPARK_MAJOR_VERSION=2; spark-submit \ --verbose \ --master yarn \ --driver-cores 5 \ --num-executors 3 --executor-cores 6 \ --principal spark@test.com \ --keytab /etc/security/keytabs/spark.headless.keytab \ --driver-java-options "-Djava.security.auth.login.config=kafka_client_jaas.conf"\ --conf "spark.executor.extraJavaOptions=-Djava.security.auth.login.config=kafka_client_jaas.conf" \ --files "/tmp/kafka_client_jaas.conf,/tmp/kafka.service.keytab" \ --class au.com.XXX.XXX.spark.test.test test.jar application.properties'

例外:

Caused by: org.apache.kafka.common.KafkaException: javax.security.auth.login.LoginException: Could not login: the client is being asked for a password, but the Kafka client code does not currently support obtaining a password from the user. not available to garner  authentication information from the user

WARN KerberosLogin: [Principal=kafka/test.com@test.com]: TGT renewal thread has been interrupted and will exit.

如何让 Kerberos 同时对两个主体进行 KINIT?我假设这是这里的问题?我尝试在初始命令中添加另一组 --principal/--keytab,尽管这会在 HDFS 中带来更多权限问题。

【问题讨论】:

  • 我面临同样的问题。有什么解决办法吗?

标签: hadoop apache-spark apache-kafka kerberos hortonworks-data-platform


【解决方案1】:

这是一个旧线程,但我为此苦苦挣扎了一段时间,希望这可以帮助某人。

可能的原因是 Spark 执行程序无法找到密钥表,因此无法向 Kerberos 进行身份验证。在您提交时,您应该使用以下选项将您的 Jaas 配置和 Keytab 文件传递​​给您的执行程序:

spark-submit --master yarn --deploy-mode cluster --files /path/to/keytab/yourkeytab.keytab#yourkeytab.keytab,/path/to/jaas/your-kafka-jaas.conf#your-kafka-jaas.conf --conf "spark.driver.extraJavaOptions=-Djava.security.auth.login.config=your-kafka-jaas.conf" --conf "spark.executor.extraJavaOptions=-Djava.security.auth.login.config=your-kafka-jaas.conf" --driver-java-options "-Djava.security.auth.login.config=your-kafka-jaas.conf" your-application.jar

最后,由于这些 jaas 文件被发送到执行程序(和 spark 驱动程序),因此您应该使用 Keytab 的相对路径,而不是绝对路径。你的 jaas 配置应该有以下行:

keyTab="./yourkeytab.keytab"

【讨论】:

    猜你喜欢
    • 2020-11-14
    • 2020-10-14
    • 2019-12-07
    • 2019-11-13
    • 1970-01-01
    • 1970-01-01
    • 2016-09-05
    • 2021-02-24
    • 1970-01-01
    相关资源
    最近更新 更多