使用hive客户端java api读写hive集群上的信息
上文介绍了hdfs集群信息的读取方式,本文说hive
1、先解决依赖
<properties>
<hive.version>1.2.1</hive.version>
</properties>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>${hive.version}</version>
<scope>provided</scope>
</dependency>
2、配置文件
这里我们给出一种简单的配置方法,就是直接将hive-site.xml通过添加文件的方式加载到配置
例如,hive-site.xml中的配置如下
<configuration>
<property>
<name>hive.metastore.uris</name>
<value>thrift://10.91.64.23:9083,thrift://10.91.64.23:9083,thrift://10.91.64.23:9083</value>
</property>
</configuration>
3、hive client api
说明:
1、hiveConf.addResource("hive-site.xml") 可以直接把配置文件加载到配置
2、hive的api很丰富,下面只介绍了其中一部分,如果用到其他再进行封装即可
package com.xiaoju.dqa.prometheus.client.hive; import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.metastore.IMetaStoreClient;
import org.apache.hadoop.hive.metastore.RetryingMetaStoreClient;
import org.apache.hadoop.hive.metastore.api.Database;
import org.apache.hadoop.hive.metastore.api.FieldSchema;
import org.apache.hadoop.hive.metastore.api.MetaException;
import org.apache.thrift.TException;
import org.slf4j.Logger; import java.util.List; public class HiveClient {
protected final Logger logger = org.slf4j.LoggerFactory.getLogger(this.getClass());
IMetaStoreClient client; public HiveClient() {
try {
HiveConf hiveConf = new HiveConf();
hiveConf.addResource("hive-site.xml");
client = RetryingMetaStoreClient.getProxy(hiveConf);
} catch (MetaException ex) {
logger.error(ex.getMessage());
}
} public List<String> getAllDatabases() {
List<String> databases = null;
try {
databases = client.getAllDatabases();
} catch (TException ex) {
logger.error(ex.getMessage());
}
return databases;
} public Database getDatabase(String db) {
Database database = null;
try {
database = client.getDatabase(db);
} catch (TException ex) {
logger.error(ex.getMessage());
}
return database;
} public List<FieldSchema> getSchema(String db, String table) {
List<FieldSchema> schema = null;
try {
schema = client.getSchema(db, table);
} catch (TException ex) {
logger.error(ex.getMessage());
}
return schema;
} public List<String> getAllTables(String db) {
List<String> tables = null;
try {
tables = client.getAllTables(db);
} catch (TException ex) {
logger.error(ex.getMessage());
}
return tables;
} public String getLocation(String db, String table) {
String location = null;
try {
location = client.getTable(db, table).getSd().getLocation();
}catch (TException ex) {
logger.error(ex.getMessage());
}
return location;
} }
使用hive客户端java api读写hive集群上的信息的更多相关文章
- 使用HDFS客户端java api读取hadoop集群上的信息
本文介绍使用hdfs java api的配置方法. 1.先解决依赖,pom <dependency> <groupId>org.apache.hadoop</groupI ...
- java api 调用es集群(1.7版本)
public static void main(String[] args) { Settings settings = ImmutableSettings.settingsBuilder() // ...
- 使用JAVA API获取hadoop集群的FileSystem
所需要配置的参数: Configuration conf = new Configuration(); conf.set("fs.defaultFS", "hdfs ...
- 报错:使用java api连接redis集群时报错 READONLY You can't write against a read only slave.
报错: READONLY You can’t write against a read only slave. 报错原因: 因为连接的是从节点,从节点只有读的权限,没有写的权限 解决方案: 进入red ...
- elasticsearch 5.0 获取 TransportClient 操作客户端java API
本文转载自:http://blog.csdn.net/likui1314159/article/details/53233881 elasticsearch 5.0 获取 TransportClien ...
- Hadoop(八)Java程序访问HDFS集群中数据块与查看文件系统
前言 我们知道HDFS集群中,所有的文件都是存放在DN的数据块中的.那我们该怎么去查看数据块的相关属性的呢?这就是我今天分享的内容了 一.HDFS中数据块概述 1.1.HDFS集群中数据块存放位置 我 ...
- DB层面上的设计 分库分表 读写分离 集群化 负载均衡
第1章 引言 随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题.对于一个大型的 互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载.对于系统的稳定性和扩展性造成了极大的 ...
- 使用SolrJ客户端管理SolrCloud(Solr集群)
1.使用SolrJ客户端管理SolrCloud(Solr集群). package com.taotao.search.service; import java.io.IOException; impo ...
- 15套java架构师、集群、高可用、高可扩展、高性能、高并发、性能优化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战视频教程
* { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩展. ...
随机推荐
- 《深入浅出MySQL》之SQL基础
SQL是Structure Query language(结构化查询语言)的缩写,它是使用关系模型的数据库应用语言.在众多开源数据中,MySQL正式其中最杰出的代表,MySQL是由三个瑞典人于20世纪 ...
- ★10 个实用技巧,让Finder带你飞~
10 个实用技巧,让 Finder 带你飞 Finder 是 Mac 电脑的系统程序,有的功能类似 Windows 的资源管理器.它是我们打开 Mac 首先见到的「笑脸」,有了它,我们可以组织和使用 ...
- 【2017集美大学1412软工实践_助教博客】团队作业4——第一次项目冲刺(Alpha版本)小组 成绩
第四次团队作业成绩公布 题目 团队作业4: http://www.cnblogs.com/happyzm/p/6722264.html 团队成绩 成绩公示如下: 检查项 会议内容 代码签入 心得体会或 ...
- 团队作业4——第一次项目冲刺(Alpha版本)4.22
团队作业4--第一次项目冲刺(Alpha版本) Day one: 会议照片 由于团队中的组员今天不在学校,所以我们的站立会议提前一天展开. 项目进展 由于今天是Alpha版本项目冲刺的第一天,所以没有 ...
- 201521123096《Java程序设计》第六周学习总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 2. 书面作业 (1)clone方法 1.1 Object ...
- Java-Preferences用法-入门
Properties提供的应用程序解决方案主要存在两个问题: (1)配置文件不能放在主目录中,因为某些OS(如Win9X)没有主目录的概念: (2)没有标准的文件命名规则,存在文件名冲突的可能性. J ...
- 201521123088《Java程序设计》第13周学习总结
1.本周学习总结 2.书面作业 1. 网络基础1.1 比较ping www.baidu.com与ping cec.jmu.edu.cn,分析返回结果有何不同?为什么会有这样的不同? ping cec. ...
- 在windows下安装flex和bison
学习Stellar-core 需要依赖项flex .bison .gcc三个依赖项 下载得网址:链接: https://pan.baidu.com/s/1mitCLcs 密码: 3jaj 通过 w ...
- iOS多线程编程
废话不多说,直接上干货.先熟悉一下基本知识,然后讲一下常用的两种,NSOperation和GCD. 一.基础概念 进程: 狭义定义:进程是正在运行的程序的实例(an instance of a com ...
- CSS3 animation-timing-function steps()
animation-timging-function 主要是控制css动画从开始到结束的速度. linear:线性过渡.等同于贝塞尔曲线(0.0, 0.0, 1.0, 1.0) ease:平滑过渡.等 ...