Я пытаюсь получить свойства таблицы, такие как расположение таблицы db, name, owner и hdfs из метастара куста, используя клиент метастара в java. Я думаю, что я могу получить базы данных таблиц и имена в порядке, но я не могу понять, как захватить такие вещи, как местоположение владельца и hdfs. Является ли это возможным? Я искал документ и интернет уже пару часов и не играл в кости.Получить свойства таблицы из Hive с помощью Java API
ответ
Может быть что-то вроде этого:
org.apache.hadoop.hive.metastore.api.Table table=..........;
org.apache.hadoop.hive.metastore.api.StorageDescriptor sd=table.getSd();
String loc=sd.getLocation();
String own=sd.getOwner();
https://hive.apache.org/javadocs/r0.11.0/api/org/apache/hadoop/hive/metastore/api/Table.html https://hive.apache.org/javadocs/r0.11.0/api/org/apache/hadoop/hive/metastore/api/StorageDescriptor.html
Если секционированной таблицы, вы можете сделать:
описывают отформатированную таблицу разделов (partition_name = partition_value).
Он отобразит основной путь hdfs и владельца таблицы.
Я побежал следующую команду на моей VirtualBox, имеющей Cloudera CDH 5.1.0
$ улей -e "описывают расширенный имя_таблицы"
Вывод этой команды содержит информацию в дополнение к TABLENAME , dbname, owner, createtime, location. Вы также можете обратиться к следующей CWIKI ссылке для получения более подробной информации
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-Describe
Спасибо всем. Я хочу использовать клиент метаданных улья, но не работает. Я нашел то, что искал, я полностью пропустил таблицу api. Derp. – SQLSuperVillain