Kafka HDFS连接器 - 没有完全融合

时间:2016-09-06 07:27:04

标签: apache-kafka apache-kafka-connect

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

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

感谢。

1 个答案:

答案 0 :(得分:1)

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

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

PS如果消息与架构不匹配,或者在注册表中不存在具有Id的架构,请非常小心地向主题发送消息,消费者无声地失败:工作线程停止但应用程序仍挂起并且不会退出。 / p>