通过 Java 获取 Hive 元数据信息有两种方式:
对比两种方式,如果仅获取 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 交互的窗口