通过beeline进入hive客户端,报错如下:
问题排查:
- 检查$HIVE_HOME/lib/是否有mysql-connector-java-5.1.27-bin.jar(根据自己hive本版可能有不同jar包)
- 检查hive-site.xml配置中端口是否正确
hive.server2.thrift.port
10000 - 检查hive server启动是否正常,查看监听
$ netstat -anp |grep 10000
tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 4093/java
tcp 0 0 192.168.111.129:10000 192.168.111.129:33106 ESTABLISHED 4093/java
tcp 0 0 ::ffff:192.168.111.12:33106 ::ffff:192.168.111.12:10000 ESTABLISHED 4261/java - 检查hdfs服务是否启动(且得在hive server之前启动)
通过jps命令查看启动服务列表
如果hdfs没有启动,先停止hive服务,启动hdfs服务后再启动hive - 在hadoop的core-site.xml中是否添加hiveserver2权限控制属性,没有则添加
官网地址:https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/Superusers.html
<property>
<name>hadoop.proxyuser.XXX.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.XXX.groups</name>
<value>*</value>
</property>
说明:这个XXX是你登录beeline的用户名,更改为自己的用户名即可,*是代表可以在任何的host机器和任何group上登录,配置完hadoop的core-site.xml文件后,一定要重启hadoop,先关闭nodemanger、resourcemanger、jobhistory、datanode、namenode(最好按这个顺序停服务)等Hadoop服务,再倒序开启这些服务,然后启动hive的meta store和hiveserver服务,否则不会生效的!!那样就还是报错!
附上将beeline登录脚本
先在/etc/profile中添加HIVE_HOME
export HIVE_HOME=/opt/software/hive-3.1.1
export PATH=$PATH:$HIVE_HOME/bin
再在$HIVE_HOME/bin下创建脚本beeline2
[fuyun@bigdata01 ~]$ vi /opt/software/hive-3.1.1/bin/beeline2
#!/usr/bin/env bash
bin=`dirname "$0"`
bin=`cd "$bin"; pwd`
. "$bin"/beeline -u jdbc:hive2://bigdata01.fuyun:10000/temp -n fuyun -p fuyun123 "$@"
然后修改脚本文件的权限:chmod 777 $HIVE_HOME/bin/beeline2
这样以后登录beeline客户端就只需要输入beeline2即可登录