如何验证pyspark流到安全的sasl plain kafka?

时间:2017-07-07 01:34:50

标签: apache-spark pyspark apache-kafka spark-streaming

我尝试从spark到Streved安全的kafka代理(使用SASL PLAINTEXT机制)。 即时通讯使用Pyspark,使用spark-streaming-kafka-0-8版本,并使用kafka broker版本0.10.2。

我遇到的问题是当pyspark流式传输到kafka时输出中没有返回任何内容。

我的问题是:

  • 如何正确验证从火花流到安全的sasl plain kafka?
  • 或者pyspark是否支持对安全的sasl plain kafka进行身份验证?我很好奇pyspark只有spark-streaming-kafka-0-8支持。因为在该版本中,对spark-streaming-kafka-0-8的初始支持是kafka broker 0.8.2版,因为版本0.9支持kafka身份验证。

附加:

  • 我可以使用控制台工具发布和订阅,因为我为我的用户设置了我想要使用的主题的acls。

这里可以解释这个问题。

用于在kafka代理的server.properties中启用sasl plain的附加参数

authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
listeners=SASL_PLAINTEXT://:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN
super.users=User:admin

这里也是我的kafka_jaas_server.conf

KafkaServer {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="admin"
    password="admin1!"
    user_admin="admin1!"
    user_aldys="admin1!";
};

我在启动kafka经纪时也包含了我的jaas配置。通过将最后一行中的kafka-server-start.sh编辑为:

exec $base_dir/kafka-run-class.sh $EXTRA_ARGS -Djava.security.auth.login.config=/etc/kafka/kafka_jaas_server.conf kafka.Kafka "$@"

1 个答案:

答案 0 :(得分:0)

我不认为kafka0-8支持sasl,从文档中可以很明显地看出,只有kafka0-10具有sasl功能,而kafka0-10不支持Python。