我一直在尝试使用kafka-connect将数据流式传输到HDFS,并在此过程中进行hive集成。
我的用例要求我使用“FieldPartioner”作为分区类。
我的问题是,我无法获得多个分区。
示例:
我的示例JSON
{
"_id": "582d666ff6e02edad83cae28",
"index": "ENAUT",
"mydate": "03-01-2016",
"hour": 120000,
"balance": "$2,705.80"
}
我想在'mydate'和'hour'
的基础上建立分区我尝试了以下
name=hdfs-sink
connector.class=io.confluent.connect.hdfs.HdfsSinkConnector
tasks.max=1
topics=fieldPartition_test_hdfs
hdfs.url=hdfs://quickstart.cloudera:8020
flush.size=3
partitioner.class=io.confluent.connect.hdfs.partitioner.FieldPartitioner
partition.field.name={mydate,hour}
locale=en
timezone=GMT
hive.database=weblogs
hive.integration=true
hive.metastore.uris=thrift://quickstart.cloudera:9083
schema.compatibility=BACKWARD
还尝试将partition.field.name指定为
partition.field.name={'mydate','hour'}
和
partition.field.name=mydate,hour
以及更多此类组合
非常感谢有关此问题的任何帮助
感谢。
答案 0 :(得分:1)
我尽可能地尝试了这一点,后来开始深入研究源代码。
FieldPartitoner的代码是here!
此处对文件的最后一次提交显示"还原'支持多分区字段' 3个月前"
如果你们有任何其他解决方案,请告诉我。