apache-kafka - Kafka Connect HDFS Sink中的多个嵌套字段分区
问题描述
我们正在运行 kafka hdfs sink 连接器(版本 5.2.1),需要将 HDFS 数据按多个嵌套字段进行分区。主题中的数据存储为 Avro 并具有嵌套元素。如何连接无法识别嵌套字段并引发错误找不到该字段。下面是我们正在使用的连接器配置。hdfs sink connect不支持嵌套字段分区吗?我可以使用非嵌套字段进行分区
{
"connector.class": "io.confluent.connect.hdfs.HdfsSinkConnector",
"topics.dir": "/projects/test/kafka/logdata/coss",
"avro.codec": "snappy",
"flush.size": "200",
"connect.hdfs.principal": "test@DOMAIN.COM",
"rotate.interval.ms": "500000",
"logs.dir": "/projects/test/kafka/tmp/wal/coss4",
"hdfs.namenode.principal": "hdfs/_HOST@HADOOP.DOMAIN",
"hadoop.conf.dir": "/etc/hdfs",
"topics": "test1",
"connect.hdfs.keytab": "/etc/hdfs-qa/test.keytab",
"hdfs.url": "hdfs://nameservice1:8020",
"hdfs.authentication.kerberos": "true",
"name": "hdfs_connector_v1",
"key.converter": "org.apache.kafka.connect.storage.StringConverter",
"value.converter": "io.confluent.connect.avro.AvroConverter",
"value.converter.schema.registry.url": "http://myschema:8081",
"partition.field.name": "meta.ID,meta.source,meta.HH",
"partitioner.class": "io.confluent.connect.storage.partitioner.FieldPartitioner"
}
解决方案
我为 TimestampPartitioner 添加了嵌套字段支持,但 FieldPartitioner 仍然有出色的 PR
https://github.com/confluentinc/kafka-connect-storage-common/pull/67
推荐阅读
- ios - 甚至在我的操作在 main 方法中完成之前就触发了完成块
- unity3d - 有没有办法配置 Unity,使可寻址纹理根本不压缩?
- java - 如何在一个 jar 中创建 @Aspect 并使用 Load Time Weaving 从另一个 jar 中截取方法?
- sql - 在临时表中我得到这个错误:算术溢出错误将浮点数转换为数据类型数字
- c - 为什么 fgets 正在读取输入,即使输入字符串中有 EOF?
- ios - 从视图控制器到视图控制器的通用函数传输
- java - 根据 TLD 获取标签 [form] 的属性 [modelAttribute] 无效
- python - 使用 str.replace 在 for 循环中用星号替换非字母数字字符
- python - 重新开始游戏
- python - 闰年使用日历功能