首页 > 解决方案 > 使用连接接收器 HDFS 连接器包含来自 Kafka 消息的密钥

问题描述

我正在使用 Kafka 连接 HDFS 接收器连接器从 kafka 写入 HDFS,它工作正常。我的消息如下所示:

key: my-key
value: {
"name": "helen"
}

我的用例是需要将消息的键附加到我发送到 HDFS 的事件中。

问题是密钥没有出现在值有效负载中,因此我无法使用:

"partitioner.class": 
"io.confluent.connect.hdfs.partitioner.FieldPartitioner", 
"partition.field.name": "key", 

我的问题是如何将密钥添加到发送到 HDFS 的消息中,或者如何根据密钥进行分区?

标签: apache-kafkahdfstransformationapache-kafka-connectconfluent-platform

解决方案


开箱即用,您不能(S3 Connect 也是如此),仅基于代码的编写方式,而不是 Connect 框架的限制

编辑- 至少对于 S3 接收器,我认为现在有一个包含键的属性

至少,您需要构建此 SMT 并将其添加到您的 Connect 工作人员,这将在写入存储之前将键、主题和分区“移动”到 Connect 记录的“值”中

https://github.com/jcustenborder/kafka-connect-transform-archive


推荐阅读