Hive的Thrift服务

Posted 健哥说编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive的Thrift服务相关的知识,希望对你有一定的参考价值。

HiveThrift服务


Hive有一个可选组件叫HiveServerHiveThrift。可以通过指定的端口让其他访问访问hive

hive1.x版本为hiveServer2

 

1、启动hiveserver2

$ hive --service hiveserver2 &

Hive的Thrift服务

 

2、连接到hiveserver2

先启动beeline

然后再使用:

beeline> !connect jdbc:hive2://hadoop81:10000/db01 wangjian 123456

其中:wangjian 123456linux登录的用户名和密码。

 

Hive的Thrift服务

 

执行更多的查询:

 

 

3、JDBC连接到hiveserver2

需要以下依赖:

<dependency>

<groupId>org.apache.hive</groupId>

<artifactId>hive-beeline</artifactId>

<version>1.2.2</version>

</dependency>

<dependency>

<groupId>org.apache.httpcomponents</groupId>

<artifactId>httpclient</artifactId>

<version>4.5.6</version>

</dependency>

<dependency>

<groupId>org.apache.hadoop</groupId>

<artifactId>hadoop-common</artifactId>

<version>2.7.6</version>

</dependency>

 

Java代码:

@Test

public void test1() throws Exception {

Class.forName("org.apache.hive.jdbc.HiveDriver");

String url = "jdbc:hive2://hadoop81:10000/db01";

Connection con =

DriverManager.getConnection(url, "wangjian", "123456");

System.err.println(con);

Statement st = con.createStatement();

ResultSet rs = st.executeQuery("select * from stud");

while(rs.next()) {

String id = rs.getString("id");

String name =rs.getString("name");

System.err.println(id+","+name);

}

rs.close();

st.close();

con.close();

}

输出:(表的数据)

1,Jack

2,Mary

3,Alex

 

 

Java代码执行一个聚合查询:

@Test

public void test1() throws Exception {

Class.forName("org.apache.hive.jdbc.HiveDriver");

String url = "jdbc:hive2://hadoop81:10000/db01";

Connection con =

DriverManager.getConnection(url, "wangjian", "123456");

System.err.println(con);

Statement st = con.createStatement();

ResultSet rs = st.executeQuery("select count(1) from stud");

rs.next();

Long rows = rs.getLong(1);

System.err.println("rows :"+rows);

rs.close();

st.close();

con.close();

}

后台就会执行一个MR:

 

最后在JDBC客户方显示结果:

rows :5


以上是关于Hive的Thrift服务的主要内容,如果未能解决你的问题,请参考以下文章

关于python利用thrift远程连接hive的问题

如何扩展Hive Metastore Thrift RPC服务接口

如何扩展Hive Metastore Thrift RPC服务接口

SparkSQL、Thrift 服务器和 Tableau

HIVE基础操作

如何使用kettle连接hive和hive2