【问题标题】:Add additional kafka consumer settings with sparklyr使用 sparklyr 添加其他 kafka 消费者设置
【发布时间】:2020-01-26 10:57:08
【问题描述】:

我正在尝试使用 sparklyr 连接到安全的 Kafka 服务器。但是要访问它,您需要指定正确的安全设置(协议、密码等)。但是当在 read_options 中指定时,它们不会传递给消费者配置。这里是 R 代码:

library(sparklyr)
config <- spark_config()
config$sparklyr.shell.packages <- "org.apache.spark:spark-sql-kafka-0-10_2.11:2.4.0"
sc <- spark_connect(master = "local",config=config, version="2.4.0")

read_options <- list(
  kafka.bootstrap.servers='test.server',
  group.id="name",
  security.protocol='SSL',
  ssl.key.password="password",
  ssl.keystore.location="C:/Users/...",
  ssl.keystore.password="password",
  ssl.truststore.location="C:/Users/...",
  ssl.truststore.password="password",
  subscribe = "topic")

stream <- stream_read_kafka(sc, options = read_options) 

如果我们看一下spark的日志,消费者配置中只列出了服务器:(缩短版)

INFO ConsumerConfig: ConsumerConfig values: 
    bootstrap.servers = [test.server]
    ....
    group.id = spark-kafka-source-7bb43fe7-56b2-4e19-9162-371e4db2075a-1047255113-driver-2
    ....
    security.protocol = PLAINTEXT
    ...
    ssl.key.password = null
    ssl.keymanager.algorithm = SunX509
    ssl.keystore.location = null
    ssl.keystore.password = null
    ssl.keystore.type = JKS
    ssl.protocol = TLS
    ssl.provider = null
    ..
    ssl.truststore.location = null
    ssl.truststore.password = null
    ssl.truststore.type = JKS

是否有可能/解决方法向消费者添加必要的设置?

更新

查看user1278798的回答

对于有同样问题的人来说,重要的是要补充一点,不是所有的设置都受 spark 支持(例如 group.id 或 auto.offset.reset)。只需查看 user1278798 提供的链接即可。

【问题讨论】:

    标签: sparklyr


    【解决方案1】:

    正如the official documentation中明确解释的那样

    Kafka自己的配置可以通过DataStreamReader.option加上kafka.前缀来设置,例如stream.option("kafka.bootstrap.servers", "host:port")

    您的选项缺少前缀。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-20
      • 1970-01-01
      相关资源
      最近更新 更多