Как прочитать раздел куста в конвейер Apache Crunch?
Я могу читать текстовые файлы в формате hdf в конвейер Apache Crunch. Но теперь мне нужно прочитать разделы улья. Проблема в том, что согласно нашему дизайну я не должен иметь прямой доступ к файлу. Следовательно, теперь мне нужен какой-то способ, которым я могу получить доступ к разделам, используя что-то вроде HCatalog.
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())
}
Единственное, что вам понадобится, это экспортировать файл hive conf dir:
export HIVE_CONF_DIR=/home/mmichalski/hive/conf