Как использовать Hive Metastore отдельно?

Я установил и запустил сервер Metastore отдельно, без установки Hive. Однако я не могу найти документацию об API-интерфейсе бережливой сети для связи с сервером. Мне нужно иметь возможность подключаться к серверу Metastore напрямую или через HCatalog. Пожалуйста, порекомендуйте.


person Xabre    schedule 20.09.2019    source источник


Ответы (2)


В hive-webhcat-java-client есть Java-клиент HCatalog, который можно использовать как в client mode (который подключается к серверу hcatalog thrift), так и в embed mode (который делает все внутри, подключается к mysql напрямую).

    HiveConf hiveConf = new HiveConf();
    hiveConf.addResource("/Users/tzp/Documents/env/apache-hive-3.1.2-bin/conf/hive-site.xml");
    //if you set this param, the client try to connect external hive metastore
    hiveConf.set("metastore.thrift.uris", "thrift://localhost:9083");

    HCatClient client = HCatClient.create(new Configuration(hiveConf));
    List<String> dbNames = client.listDatabaseNamesByPattern("*");
    System.out.println(dbNames);

Я не думаю, что Hive предоставляет аналогичный клиент на Python, но есть сторонняя библиотека hmsclient, сделать то же самое.

from hmsclient import hmsclient
client = hmsclient.HMSClient(host='localhost', port=9083)
with client as c:
    c.check_for_named_partition('db', 'table', 'date=20180101')

HCatalog функционально идентичен Hive Metastore.

person tianzhipeng    schedule 11.05.2020

JavaDoc для «клиента Hive Metastore» и его API (ветвь 1.x) доступен по адресу

А теперь удачи в поиске туториала или просто фрагментов кода...

person Samson Scharfrichter    schedule 21.09.2019
comment
В любом случае один бесплатный фрагмент: stackoverflow.com/questions/33880050/ - person Samson Scharfrichter; 21.09.2019
comment
Спасибо Самсон. На данный момент я использую thrift API в Python для доступа к серверу Metastore. Я могу позвонить вам снова, если у меня возникнут дополнительные вопросы. А пока спасибо! - person Xabre; 25.09.2019