Как прочитать раздел улья в конвейер Apache Crunch?

Я могу читать текстовые файлы в hdfs в конвейер apache crunch. Но теперь мне нужно прочитать разделы улья. Проблема в том, что в соответствии с нашим дизайном я не должен напрямую обращаться к файлу. Следовательно, теперь мне нужен какой-то способ, с помощью которого я могу получить доступ к разделам, используя что-то вроде HCatalog.


person Jijo Mathew    schedule 20.10.2014    source источник


Ответы (1)


Вы можете использовать API org.apache.hadoop.hive.metastore или HCat API. Вот простой пример использования hive.metastore. Вам нужно будет сделать вызов либо до запуска вашего конвейера, если вы не хотите присоединиться к какому-либо разделу Hive в картографе/редукторе.

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())
}

Единственное, что вам понадобится, это экспортировать каталог конфигурации куста:

export HIVE_CONF_DIR=/home/mmichalski/hive/conf
person Marcin    schedule 21.11.2014