操作内容简介
一、hiveserver2简介
Hive在生产上是不需要部署集群的,操作Hive只需要通过它提供的客户端即可,Hive提供了大致三类客户端:
- hive shell:通过hive shell来操作hive,但是至多只能存在一个hive shell,启动第二个会被阻塞,也就是说hive shell不支持并发操作。
- WebUI: 通过HUE/Zeppelin来对Hive表进行操作。
- 基于JDBC等协议:启动hiveserver2,通过jdbc协议可以访问hive,hiveserver2支持高并发。
简而言之,hiveserver2是Hive启动了一个server,客户端可以使用JDBC协议,通过IP+ Port的方式对其进行访问,达到并发访问的目的。
二、使用hiveserver2服务
本次演示使用的Hive版本是:apache-hive-2.1.0,开发工具是IDEA2018
1.启动hiveserver2服务
启动Hive有两条命令:$HIVE_HOME/bin/./hive --service hiveserver2
或者
$HIVE_HOME/bin/./hiveserver2
,hiveserver2的服务端口默认是10000,WebUI端口默认是10002,在终端使用命令netstat -anop|grep 10000
和 netstat -anop|grep 10002
:
发现两个端口均处于监听状态,查看WebUI:
hiveserver2服务启动成功。
2.启动beeline连接server
在装了相同版本Hive的其他主机(启动hiveserver2的主机也可以)上启动beeline,可以连接到Hive的server上。执行命令:beeline -u jdbc:hive2://hadoop00:10000
:
查看WebUI,可看到有一个连接已经连上了server:
然后就可以使用beeline完成在hive shell中相同的操作了。
3.使用JDBC协议连接server
1.构建Java工程,添加Maven支持
完整的Maven依赖如下:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12