spark scala jaas配置

n53p2ov0  于 2021-06-06  发布在  Kafka
关注(0)|答案(2)|浏览(581)

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

kmb7vmvb

kmb7vmvb1#

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

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"

您可能还需要设置 "security.protocol" 在spark code的kafka属性中,它是受支持的kafka属性之一 SASL 协议

1hdlvixo

1hdlvixo2#

我有一个像你一样的问题,我用这个启动脚本来运行我的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.extraJavaOptions 以及 spark.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

相关问题