Xabre
Xabre

Reputation: 21

How to use Hive Metastore standalone?

I installed and ran the Metastore Server standalone, without installing Hive. However, I cannot find any documentation about the thrift network API for communicating with the server. I need to be able to connect to the Metastore server directly or through HCatalog. Please advise.

Upvotes: 1

Views: 2165

Answers (2)

tianzhipeng
tianzhipeng

Reputation: 2209

There is a HCatalog Java client in hive-webhcat-java-client, which can be used in both client mode (which connect to hcatalog thrift server) and embed mode (which do all the things internally, connect to mysql directly).

    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);

I don't think Hive provide similar client in Python, but there is a third party lib hmsclient, do the same thing.

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 is functionally identical to Hive Metastore.

Upvotes: 1

Samson Scharfrichter
Samson Scharfrichter

Reputation: 9067

The JavaDoc for "Hive Metastore client" and its API (branch 1.x) is available at

Now, good luck finding a tutorial or just code snippets...

Upvotes: 0

Related Questions