Hive启动hiveserver2报错:Could not open client transport with JDBC Uri解决方案

通过beeline进入hive客户端,报错如下:
Hive启动hiveserver2报错:Could not open client transport with JDBC Uri解决方案_第1张图片

问题排查:

  1. 检查$HIVE_HOME/lib/是否有mysql-connector-java-5.1.27-bin.jar(根据自己hive本版可能有不同jar包)
  2. 检查hive-site.xml配置中端口是否正确
    hive.server2.thrift.port
    10000
  3. 检查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
  4. 检查hdfs服务是否启动(且得在hive server之前启动)
    通过jps命令查看启动服务列表
    如果hdfs没有启动,先停止hive服务,启动hdfs服务后再启动hive
  5. 在hadoop的core-site.xml中是否添加hiveserver2权限控制属性,没有则添加
    官网地址:https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/Superusers.html
<property>
    <name>hadoop.proxyuser.XXX.hostsname>
    <value>*value>
property>
<property>
    <name>hadoop.proxyuser.XXX.groupsname>
    <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即可登录
Hive启动hiveserver2报错:Could not open client transport with JDBC Uri解决方案_第2张图片

你可能感兴趣的:(hive,hive,beeline)