使用kafka-connect的多个配置单元分区

时间:2016-11-18 07:35:29

标签: hadoop hive apache-kafka apache-kafka-connect confluent

我一直在尝试使用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

以及更多此类组合

非常感谢有关此问题的任何帮助

感谢。

1 个答案:

答案 0 :(得分:1)

我尽可能地尝试了这一点,后来开始深入研究源代码。

FieldPartitoner的代码是here

此处对文件的最后一次提交显示"还原'支持多分区字段' 3个月前"

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