Я пытаюсь использовать kafka (0.9.1) в безопасном режиме. Я бы прочитал данные с помощью Spark, поэтому я должен передать файл conf JAAS в JVM. Я использую эту ЦМД, чтобы начать свою работу:spark kafka security kerberos
/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)
Я думаю, что искра не вводить параметр Djava.security.auth.login.conf в jvm !!
Из личного опыта, параметры командной строки, может или не может работать в зависимости от способа Искра была составлена. Вы пытались установить «spark.executor.extraJavaOptions» в '$ SPARK_HOME/conf/spark-defaults.conf'? –
И BTW, вы пытались запустить код в локальном режиме с помощью только 'spark.driver.extraJavaOptions'? –
Я начал с spark.driver.extraJavaOptions, так что это правильный вариант. Я думаю, что аутентификация kafka находится в драйвере не у исполнителей. –