0

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

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

谢谢。

4

1 回答 1

1

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

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

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

于 2016-12-22T14:43:57.153 回答