【问题标题】:Spark Scala Jaas configurationSpark Scala Jaas 配置
【发布时间】:2019-02-09 20:32:37
【问题描述】:

我正在使用 Kafka jar 在 scala shell 上执行 spark 代码,我的目的是从 Kafka 主题流式传输消息。我的 spark 对象已创建,但任何人都可以帮助我在启动 spark shell 时如何传递 jaas 配置文件?我的错误指出我缺少 jaas 配置

【问题讨论】:

  • 你目前如何通过它?
  • Scala>Spark-shell —jars=xxxxx.jar,xxxxx.jar —files=path/jaas.config

标签: scala apache-spark apache-kafka jaas


【解决方案1】:

假设您在运行 spark-submit 的当前文件夹中有一个 spark-kafka.jaas 文件,您将其作为文件传递,以及驱动程序和执行程序选项

spark-submit \
 ...
  --files "spark-kafka.jaas#spark-kafka.jaas" \
  --driver-java-options "-Djava.security.auth.login.config=./spark-kafka.jaas" \
  --conf "spark.executor.extraJavaOptions=-Djava.security.auth.login.config=./spark-kafka.jaas"

您可能还需要在 Spark 代码的 Kafka 属性中将 "security.protocol" 设置为受支持的 Kafka SASL 协议之一

【讨论】:

  • 我创建了一个类但没有创建一个 jar 。在启动 spark shell 并执行我的代码后,我正在尝试如下运行。 Scala>objectname.main(Array())
  • 这些参数也适用于spark-shell
  • 使用-file参数时找不到文件,它正在寻找带有#的文件名
  • @cricket_007 :恐怕它不适用于 spark-shell。
  • @ozw1z5rd 他们应该。如果您认为这是错误的,请随时提供您自己的答案
【解决方案2】:

我遇到了像你这样的问题,我正在使用这个启动脚本来运行我的 spark-shell,我正在使用 spark 2.3.0。

export HOME=/home/alessio.palma/scala_test

spark2-shell  \
--verbose \
--principal hdp_ud_appadmin \
--files "jaas.conf" \
--keytab $HOME/hdp_ud_app.keytab \
    --master local[2] \
    --packages org.apache.spark:spark-streaming-kafka-0-10_2.11:2.3.0,org.apache.kafka:kafka-clients:0.10.0.1 \ 
    --conf spark.driver.extraJavaOptions="-Djava.security.auth.login.config=/home/alessio.palma/scala_test/jaas.conf -Djava.security.krb5.conf=/etc/krb5.conf" \
    --conf spark.executor.extraJavaOptions="-Djava.security.auth.login.config=/home/alessio.palma/scala_test/jaas.conf -Djava.security.krb5.conf=/etc/krb5.conf" \
    --driver-java-options spark.driver.extraJavaOptions="-Djava.security.auth.login.config=file://jaas.conf -Djava.security.krb5.conf=file:///etc/krb5.conf" \
    --driver-java-options spark.executor.extraJavaOptions="-Djava.security.auth.login.config=file://jaas.conf -Djava.security.krb5.conf=file:///etc/krb5.conf" \
--queue=root.Global.UnifiedData.hdp_global_ud_app 

任何尝试都因此错误而失败:

org.apache.kafka.common.KafkaException: Failed to construct kafka consumer
:
.
Caused by: org.apache.kafka.common.KafkaException: org.apache.kafka.common.KafkaException: Jaas configuration not found

看起来park.driver.extraJavaOptionsspark.executor.extraJavaOptions 不起作用。在我将这一行添加到我的启动脚本顶部之前,一切都失败了:

export SPARK_SUBMIT_OPTS='-Djava.security.auth.login.config=/home/alessio.palma/scala_test/jaas.conf' 

神奇地找到了 jaas.conf 文件。我建议在您的启动脚本中添加的另一件事是:

 export SPARK_KAFKA_VERSION=0.10

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2020-06-15
    • 1970-01-01
    相关资源
    最近更新 更多