【问题标题】:Kafka HDFS Connector - Without Full ConfluentKafka HDFS 连接器 - 没有完全融合
【发布时间】:2017-01-13 13:21:33
【问题描述】:

我有一个正在运行的 Kafka 0.10 实例,我目前正在使用 Gobblin 将数据存储到 HDFS 中。我想切换到 Kafka Connect,经过研究发现 Confluent 提供了一个连接器。

但是,有没有办法在不使用整个 Confluent 平台的情况下使用此连接器?意思是我可以从 Confluent 源复制相关脚本并以某种方式让我的 Kafka 实例使用它吗? 我基本上还在学习这些东西,所以我还不是很精通这个领域。

谢谢。

【问题讨论】:

  • Confluent Platform 与 OS Kafka 兼容,所以是的,它应该可以工作。但是为什么不使用 CP——这会让你的生活更轻松:)

标签: apache-kafka apache-kafka-connect


【解决方案1】:

是的,这是可能的。我已经做到了。我使用在 Docker 容器中运行的稍微修改的 Confluent HDFS 独立连接器。 但是,您也必须使用 SchemaRegistry。因为连接器与 SchemaRegistry 紧密耦合。 此外,您必须发送特殊格式的消息。为了支持自动模式识别,Confluent Kafka 消费者引入了一种内部消息格式。因此,为了与 Confluent Consumer 兼容,您的生产者必须按照以下格式编写消息。

  • 标题(5字节)
    • 消息“Magic byte”的第一个字节应始终为 0
    • 接下来的 4 个字节应该是架构注册表中以 Big Endian 格式编码的 架构 ID
  • 有效负载(Avro\Parquet 对象,二进制编码)。

PS 向主题发送消息时要非常小心,因为如果消息与模式不匹配,或者注册表中不存在具有 Id 的模式,消费者会默默地失败:工作线程停止但应用程序仍然挂在内存中并且不会退出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-13
    • 2019-11-28
    • 2022-11-18
    • 1970-01-01
    • 2021-08-28
    • 2022-11-18
    • 2022-09-26
    • 2018-02-23
    相关资源
    最近更新 更多