1

我能够将 hdfs 中的文本文件读入 apache crunch 管道。但现在我需要读取配置单元分区。问题是根据我们的设计,我不应该直接访问该文件。因此,现在我需要某种方式来使用 HCatalog 之类的方式访问分区。

4

1 回答 1

0

您可以使用 org.apache.hadoop.hive.metastore API 或 HCat API。这是一个使用 hive.metastore 的简单示例。除非您想加入 mapper/reducer 中的某个 Hive 分区,否则您必须在开始您的 Pipeline 之前或之前拨打电话。

HiveMetaStoreClient hmsc = new HiveMetaStoreClient(hiveConf)
HiveMetaStoreClient hiveClient = getHiveMetastoreConnection();
List<Partition> partitions = hiveClient.listPartittions("default", "my_hive_table", 1000)
for(Partition partition: partitions) {
   System.out.println("HDFS data location of the partition: " + partition.getSd().getLocation())
}

您唯一需要的另一件事是导出 hive conf 目录:

export HIVE_CONF_DIR=/home/mmichalski/hive/conf
于 2014-11-21T23:02:29.080 回答