【问题标题】:some kafka params in spark-streaming-kafka-0-10_2.10 are fixed to nonespark-streaming-kafka-0-10_2.10 中的一些 kafka 参数固定为无
【发布时间】:2017-10-10 12:08:35
【问题描述】:

我正在使用版本 2.0.2 的 spark-streaming-kafka-0-10_2.10 进行火花流式传输作业。我收到这样的警告: 17/10/10 16:42:25 WARN KafkaUtils: overriding enable.auto.commit to false for executor 17/10/10 16:42:25 WARN KafkaUtils: overriding auto.offset.reset to none for executor 17/10/10 16:42:25 WARN KafkaUtils: overriding executor group.id to spark-executor-dump_user_profile 17/10/10 16:42:25 WARN KafkaUtils: overriding receive.buffer.bytes to 65536 see KAFKA-3135

当我查看源代码时,有一段代码修复了 KafkaUtils 中名为 fixKafkaParams(...) 的参数,如下所示:

```

logWarning(s"overriding ${ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG} to false for executor")
kafkaParams.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, false: java.lang.Boolean)

logWarning(s"overriding ${ConsumerConfig.AUTO_OFFSET_RESET_CONFIG} to none for executor")
kafkaParams.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "none")

// driver and executor should be in different consumer groups
val originalGroupId = kafkaParams.get(ConsumerConfig.GROUP_ID_CONFIG)
if (null == originalGroupId) {
  logError(s"${ConsumerConfig.GROUP_ID_CONFIG} is null, you should probably set it")
}
val groupId = "spark-executor-" + originalGroupId
logWarning(s"overriding executor ${ConsumerConfig.GROUP_ID_CONFIG} to ${groupId}")
kafkaParams.put(ConsumerConfig.GROUP_ID_CONFIG, groupId)

// possible workaround for KAFKA-3135
val rbb = kafkaParams.get(ConsumerConfig.RECEIVE_BUFFER_CONFIG)
if (null == rbb || rbb.asInstanceOf[java.lang.Integer] < 65536) {
  logWarning(s"overriding ${ConsumerConfig.RECEIVE_BUFFER_CONFIG} to 65536 see KAFKA-3135")
  kafkaParams.put(ConsumerConfig.RECEIVE_BUFFER_CONFIG, 65536: java.lang.Integer)
}

} ``` 我怎样才能度过难关?非常感谢

【问题讨论】:

  • 你的目标是什么?这些参数被执行者覆盖。应在驱动程序上提交偏移量

标签: spark-streaming spark-streaming-kafka


【解决方案1】:

“KafkaUtils:将执行程序的 auto.offset.reset 覆盖为 none”是 KafkaUtils 中的常见行为,这不会产生任何问题。这可以忽略。

这仅在 KafkaUtils 中以这种方式编写,以调整 kafka 参数以防止执行程序出现问题,但是您可以在驱动程序上检查它,它不会更改 auto.offset.reset 的值并保留您定义的值在你的 kafkaParams 中。下面是kafkaUtils的链接供参考。

https://github.com/apache/spark/blob/master/external/kafka-0-10/src/main/scala/org/apache/spark/streaming/kafka010/KafkaUtils.scala

最初我什至认为这可能是问题,但在执行我的 kafka 代码后,我没有遇到任何问题。

【讨论】:

    猜你喜欢
    • 2019-08-08
    • 2017-12-28
    • 2016-03-12
    • 2018-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多