gpt4 book ai didi

security - Spark 卡夫卡 安全 kerberos

转载 作者:行者123 更新时间:2023-12-02 22:00:53 26 4
gpt4 key购买 nike

我尝试在安全模式下使用kafka(0.9.1)。我会使用 Spark 读取数据,因此我必须将 JAAS conf 文件传递​​给 JVM。我使用这个 cmd 来开始我的工作:

    /opt/spark/bin/spark-submit -v --master spark://master1:7077    \
--conf "spark.executor.extraJavaOptions=-Djava.security.auth.login.conf=kafka_client_jaas.conf" \
--files "./conf/kafka_client_jaas.conf,./conf/kafka.client.1.keytab" \
--class kafka.ConsumerSasl ./kafka.jar --topics test

我仍然有同样的错误:

Caused by: java.lang.IllegalArgumentException: You must pass java.security.auth.login.config in secure mode.
at org.apache.kafka.common.security.kerberos.Login.login(Login.java:289)
at org.apache.kafka.common.security.kerberos.Login.<init>(Login.java:104)
at org.apache.kafka.common.security.kerberos.LoginManager.<init>(LoginManager.java:44)
at org.apache.kafka.common.security.kerberos.LoginManager.acquireLoginManager(LoginManager.java:85)
at org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:55)

我认为spark没有在jvm中注入(inject)参数Djava.security.auth.login.conf!!

最佳答案

此问题的主要原因是您提到了错误的属性名称。它应该是 java.security.auth.login.config 而不是 -Djava.security.auth.login.conf。此外,如果您使用的是 keytab 文件。确保使用 spark-submit 中的 --files 参数使其在所有执行器上可用。如果您使用 kerberos 票证,请确保使用属性 SPARK_YARN_USER_ENV 在所有执行器上设置 KRB5CCNAME

如果您使用旧版本的 Spark 1.6.x 或更早版本。那么 Spark 存在一些已知问题,这种集成将无法工作,那么您必须编写一个自定义接收器。

对于spark 1.8及更高版本,可以看到配置here

如果您需要创建自定义接收器,您可以看到 this

关于security - Spark 卡夫卡 安全 kerberos,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38832283/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com