【问题标题】:Kafka Spark Streaming ingestion for multiple topics多个主题的 Kafka Spark Streaming 摄取
【发布时间】:2023-03-25 08:40:01
【问题描述】:

我们目前正在使用 Spark Streaming 将 Kafka 消息摄取到 HDFS。到目前为止,我们为每个主题生成了一个完整的 Spark 作业。

由于某些主题的消息很少生成(平均每天 1 条),我们正在考虑在 池 中组织摄取。

我们的想法是避免为这个“不常见”的主题创建一个完整的容器(和相关资源)。事实上,Spark Streaming 在输入中接受主题列表,因此我们正在考虑使用此功能以便单一工作使用所有主题。

你们认为暴露的策略是一个好策略吗?我们也考虑过批量摄取,但我们喜欢保持实时行为,所以我们排除了这个选项。您有什么建议或建议吗?

Spark Streaming 能否很好地处理多个主题作为来源,以防偏移一致性等方面出现故障?

谢谢!

【问题讨论】:

  • 就个人而言,我会使用 Kafka Connect 集群而不是调整 Spark 代码
  • 好点。但我们倾向于排除 Kafka Connect 有几个原因:似乎只有 Confluent 实现只处理 Avro 序列化。此外,我们自己的实现将为我们提供完全的灵活性。此外,我们希望使用我们自己的调度程序在我们的集群中处理这些集成作业,而不是在堆栈中添加其他技术。
  • 建议你听从007的建议
  • 它不是 Confluent 独有的。它完全基于插件。只是一个想法,如果你想让你的 Spark 集群为其他任务打开更多资源
  • 感谢@cricket_007,但我只能找到 Confluent 连接器。我担心许可证和其他东西。你知道不同的连接器吗?可以给个链接吗?

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


【解决方案1】:

我认为 Spark 应该能够很好地处理多个主题,因为他们长期以来一直支持这一点,是的 Kafka 连接不是融合 API。 Confluent 确实为其集群提供了连接器,但您也可以使用它。您可以看到 Apache Kafka 也有 Connect API 的文档。

Apache 版的 Kafka 难度不大,但你可以使用。

https://kafka.apache.org/documentation/#connectapi

此外,如果您在单火花流作业中选择多个 kafka 主题,您可能需要考虑不要创建小文件,因为您的频率似乎非常少。

【讨论】:

    猜你喜欢
    • 2019-07-12
    • 2019-06-24
    • 2018-07-15
    • 2017-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-09
    • 1970-01-01
    相关资源
    最近更新 更多