概述
HiveServer2是一个能使客户端针对hive执行查询的一种服务,与HiverServer1比较,它能够支持多个客户端的并发请求和授权的;
HiveCLI 和 hive –e的方式比较单一,HS2允许远程客户端使用多种语言诸如Java,Python等向Hive提交请求,然后取回结果
HiveServer2的客户端
beeline
常用命令
!connect 打开数据库一个新的连接
!close 关闭当前数据库的连接
!closeall 关闭当前打开的所有连接
!columns 列出指定表的所有列
!commit 提交当前事务
!describe 描述一张表
!dropall 删除当前数据库所有表
!indexes 列出指定表的索引
!list 列出当前的连接
!outputformat 设置输出格式
!procedures 列出所有的存储过程
!properties 根据指定的属性文件连接数据库
!quit 退出程序
!rollback 回滚事务
!run 根据指定的文件执行脚本
!set 设置一个变量
!sh 执行一个Linux shell命令
!tables 列出数据库所有的表
jdbc连接配置
#进入beeline
[root@master ~]# beeline
#连接10000端口
beeline> !connect jdbc:hive2://192.168.134.154:10000
Connecting to jdbc:hive2://192.168.134.154:10000
Enter username for jdbc:hive2://192.168.134.154:10000: root #用户名root
Enter password for jdbc:hive2://192.168.134.154:10000: **** #密码root
安装部署
apache-hive
vi apache-hive-2.3.3-bin/conf/hive-site.xml 编辑hive-site.xml添加如下:
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
<property>
<name>hive.server2.thrift.bind.host</name>
<value>10.14.68.233</value>
</property>
2.hadoop
进入到hadoop的安装目录下的etc/hadoop文件夹,配置其中的core-site.xml文件
注意:如果是hadoop集群而不是单机版,需要更改所有虚拟机上的core-site.xml文件
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
重启集群和zookeeper
启动
#启动hiveserver2
[root@master ~]# hiveserver2
#或者
[root@master ~]# hive --service hiveserver2
你的页面会一直卡在这里,这是正常的,因为你是启动了一个服务
(root启动)
#进入beeline
[root@master ~]# beeline
#连接10000端口
beeline> !connect jdbc:hive2://192.168.134.154:10000
Connecting to jdbc:hive2://192.168.134.154:10000
Enter username for jdbc:hive2://192.168.134.154:10000: root #用户名root
Enter password for jdbc:hive2://192.168.134.154:10000: **** #密码root
# 查看是否能够使用
0: jdbc:hive2://192.168.134.154:10000> show databases;
+----------------+
| database_name |
+----------------+
| default |
+----------------+
1 row selected (2.51 seconds)