Ich versuche, Kafka (0.9.1) mit Sicherheitsmodus zu verwenden. Ich würde Daten mit Spark lesen, also muss ich die JAAS Conf-Datei an die JVM übergeben. Ich benutze diese cmd meinen Job zu starten:Funke Kafka Sicherheit 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
ich immer noch die gleichen Fehler hat:
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)
ich der Funke denke nicht, die Parameter nicht injiziert Djava.security.auth.login.conf im jvm !!
Aus persönlicher Erfahrung, Befehlszeilenoptionen können oder auch nicht auf dem Weg in Abhängigkeit sehen Spark wurde kompiliert. Haben Sie versucht, 'spark.executor.extraJavaOptions' in '$ SPARK_HOME/conf/spark-defaults.conf' zu setzen? –
Und BTW, haben Sie versucht, den Code im lokalen Modus auszuführen, mit nur 'spark.driver.extraJavaOptions'? –
Ich habe mit spark.driver.extraJavaOptions begonnen, also ist es die richtige Option. Ich denke, die Authentifizierung von Kafka ist im Treiber nicht in den Executoren. –