学习 Hive(五):Hive MetaStore Java API

通过 Java 获取 Hive 元数据信息有两种方式:

  1. hive-metastore 包,通过 Hive Metastore Server 获取;
  2. hive-jdbc 包,通过 HiveServer2 获取。

对比两种方式,如果仅获取 Hive 元数据信息,而不操作底层数据,建议使用第一种方式。

依赖

首先,将 Hive 的配置文件 hive-sixe.xml 放到工程 resources 目录下

属性 hive.metastore.uris 定义了 Hive 元数据服务 地址,协议以 thrift:// 开头,默认端口号为 9083

然后,编辑 pom.xml 文件添加依赖:

<hadoop.version>2.6.5</hadoop.version>  
<hive.version>1.2.1</hive.version>  
<dependency>  
    <groupId>org.apache.hive</groupId>
    <artifactId>hive-metastore</artifactId>
    <version>${hive.version}</version>
</dependency>  
<dependency>  
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-client</artifactId>
    <version>${hadoop.version}</version>
</dependency>  

代码🌰

获取所有 Hive 数据库:

HiveConf conf = new HiveConf(); // ①  
HiveMetaStoreClient client = new HiveMetaStoreClient(conf); // ②  
client.getAllDatabases();  

① 定义 Hive 配置,默认会加载 classpath 根目录下的 hive-site.xml 配置,也可以通过调用 HiveConf 的 addResource 方法指定配置文件

② 创建 HiveMetaStoreClinet 实例,是与 Hive MetaStore Server 交互的窗口