0


处理hive中hiveserver2启动后,beeline连接出现的“拒绝连接” # 谭子

处理hadoop中hive无法连接hiveserver2问题

在使用beeline上使用!connect jdbc://hive2://hadoop01:10000出现报错内容如下:

Error: Could not open client transport with JDBC Uri: jdbc:hive2://hadoop1:10000:
Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException):
User: andy is not allowed to impersonate andy (state=08S01,code=0)

    出现这样的报错信息,究其根本是beeline无法识别到已启动的hiveserver2,在防火墙已关闭仍出现这个问题时,我推荐用下文方法来解决。

解决方法

Ⅰ、先打开指定文件目录,修改core-site.xml

** **(需要确保hadoop集群已关闭)
**stop-all.sh **
cd /export/servers/hadoop-2.7.4/etc/hadoop
vi core-site.xml

    ps:这里修改的core-site.xml只需要被远程的主机即可,不需要将所有集群上的主机都修改,但如果真这么做了,也是OK的。

Ⅱ、在core-site.xml内添加下列配置信息

#core-site.xml的配置
    <property>
             <name>hadoop.proxyuser.root.hosts</name>
             <value>*</value>
    </property>
    <property>
             <name>hadoop.proxyuser.root.groups</name>
             <value>*</value>
    </property>
    ps:需要注意的是,配置文件中的“root”指的是当前使用者名称,因为我的Xshell连接采用了ssh协议,以“root”为用户名。如果我的虚拟机当前用户名不是root,但又想要连接入hive中的beeline远程,就需将上述配置信息中的“root”更换为当前用户名,或你所想要通过beeline远程连接的指定用户名。

Ⅲ、重启hadoop集群,启动01的hiveserver2

(这里同时也要确保mysql是启动的:/etc/init.d/mysqld start)

start-all.sh
cd /export/servers/apache-hive-1.2.1-bin/
bin/hiveserver2

Ⅳ、启动01(或02)上的beeline远程,测试是否连接成功

需要在xshell会话框上复制01的会话
在xshell里右键hadoop01,选择复制会话(出现另外一个hadoop01)

    在另外一个01上jps查看是否存在RunJar节点,确定hiveserver2是启动成功的

并在另外一个01上启动beeline
cd /export/servers/apache-hive-1.2.1-bin/
bin/beeline

!connect jdbc:hive2://hadoop01:10000

     出现上图内容则代表能够连接hiveserver2服务,beeline远程成功。

标签: hive hadoop 大数据

本文转载自: https://blog.csdn.net/tanz10086/article/details/128114647
版权归原作者 子谭一 所有, 如有侵权,请联系我们删除。

“处理hive中hiveserver2启动后,beeline连接出现的“拒绝连接” # 谭子”的评论:

还没有评论