HiveServer2
HiveServer 2(HS2)是一种服务,使客户端能够对Hive执行查询。HiveServer 2是HiveServer 1的继承者,HiveServer 1已被废弃。HS2支持多客户端并发和身份验证。它的设计是为了更好地支持开放API客户机,如JDBC和ODBC。HS2是一个作为复合服务运行的单个进程,它包括基于Thwift的Hive服务(TCP或HTTP)和用于WebUI的JettyWeb服务器。
启动HiveServer2
在bin目录下
./hiveserver2
启动hive的服务:
[root@hdp20-04 hive-1.2.1]# bin/hiveserver2 -hiveconf hive.root.logger=DEBUG,console
上述启动,会将这个服务启动在前台,如果要启动在后台,则命令如下:
nohup bin/hiveserver2 1>/dev/null 2>&1 &
& 后台输出
1,标准输出
2,错误输出
/dev/null ,Linux中的黑洞,表示不存储信息;
nohup,用户即使退出,程序也会在后台运行
使用beeline连接hive2时报错
Error: Could not open client transport with JDBC Uri: jdbc:hive2://master:10000/default: java.net.ConnectException: 拒绝连接 (Connection refused) (state=08S01,code=0)
原因:
解决方法:
对hadoop的core-site.xml
进行配置,在文件里面添加并保存
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
重启hadoop
启动hiveserver2
hiveserver2
查看hiveserver2启动状态
netstat -nptl | grep 10000
接着启动beeline
beeline
最后使用jdbc连接数据库
!connect jdbc:hive2://master:10000/default