kafka-connect-hdfs连接器支持使用FlatBuffer模式保存字节数组和字段分区

时间:2019-02-17 13:25:59

标签: apache-kafka apache-kafka-connect confluent flatbuffers

我一直在寻找kafka-connect-hdfs连接器(Confluent)支持,以使用FlatBuffer模式保存字节数组和字段分区。

我正在从kafka接收字节数组中的数据。该字节数组是从FlatBuffer生成的。需要将其保存在HDFS的路径为Field1 / Field2 / Field3的位置。这些所有字段都需要使用FlatBuffer模式从字节数组中提取。另外,要保存在HDFS中的数据只需以字节为单位。无需数据转换。

我都选中了:

  1. FieldPartitioner:https://github.com/confluentinc/kafka-connect-storage-common/blob/master/partitioner/src/main/java/io/confluent/connect/storage/partitioner/FieldPartitioner.java
  2. 支持的格式:Json,Avro,Parquet。在https://github.com/confluentinc/kafka-connect-storage-cloud/blob/master/kafka-connect-s3/src/main/java/io/confluent/connect/s3/format/json/JsonRecordWriterProvider.java中,尽管如果数据是Kafka Struct类型,我发现字节数组保存在HDFS中。

我找不到为自己的目的使用它们的方法。

有人知道内置支持中的此类内容吗?如果没有,那么请引导我获得资源(如果有的话)以为两者建立自定义支持。

1 个答案:

答案 0 :(得分:0)

FlatBuffers不是(当前)受支持的序列化格式,ByteArrayFormat仅适用于S3 Connect,而不适用于HDFS,仅从Kafka中转出ByteArraySerializer格式(这将是一种结构)转换后的对象,是的。

对于分区,由于数据仅为字节,因此它不检查记录值以支持分区程序,因此您还需要添加其中的一个自定义内容,这将需要对消息进行反序列化以检查字段。

我不确定为什么要链接到S3连接代码,但是如果要添加自己的格式,请查看PR that added StringFormat到HDFS connect


要构建项目,请look at the FAQ

相关问题