0

在此过程中,我一直在尝试使用 kafka-connect 通过配置单元集成将数据流式传输到 HDFS。

我的用例要求我使用“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

以及更多这样的组合

对此问题的任何帮助将不胜感激

谢谢。

4

1 回答 1

1

我尝试了所有可能的方法,后来开始深入研究源代码。

FieldPartitoner 的代码在这里

此处文件的最后一次提交显示“Revert 'support multi partition fields' 3 months ago”

如果你们有任何其他解决方案,请告诉我。

于 2016-11-18T11:35:41.637 回答