您现在的位置是:首页 >技术杂谈 >出现Error: Could not open client transport with JDBC Uri: jdbc:hive2://node02:10000/;user=root:..怎么办?网站首页技术杂谈

出现Error: Could not open client transport with JDBC Uri: jdbc:hive2://node02:10000/;user=root:..怎么办?

freshman_y 2024-07-04 11:18:00
简介出现Error: Could not open client transport with JDBC Uri: jdbc:hive2://node02:10000/;user=root:..怎么办?

最近实现hive远程部署出现一些问题,用网上的方法修改Hadoop的core-site.xml还是连不上,出现的问题又变成了Connection Refused。用这篇文章记录一下我的解决方法。

  一、问题描述 

        当使用beeline -u jdbv:hive2://主机名:10000 -n root -p时报了以下错误:

 二、问题分析

         "user: root is not allowed to impersonate root-----用户:root不被允许冒充root."这其实就是用户权限的问题。给三台机器Hadoop的core-site.xml添加以下属性就行。(***表示用户名,上面红框里是root我就改成的root。千万不要改成主机名!!!!!!)。然后重启Hadoop(stop-all.sh,start-all.sh)。

<property>
        <name>hadoop.proxyuser.***.hosts</name>
        <value>*</value>
</property>
<property>
        <name>hadoop.proxyuser.***.groups</name>
        <value>*</value>
</property>

三、执行准备工作

1、首先关闭Hadoop的服务。 

2、接着开启Hadoop的服务。 (命令jps查看是否起开了进程)

3、开启MySQL服务。

#启动MySQL服务

systemctl start mysqld.service

#查看MySQL服务状态 

systemctl status mysqld.service

#显示active(running)说明MySQL服务启动成功了 。

4、开启远程主机的hiveserver2。(我的远程hive主机是node02) 

hive --service hiveserver2

 #如果执行"hive --service hiveserver2"后边多了"Hive Seession ID=*******"也是开启了hiveserver2监听服务,只要不报错就行。

四、启动远程连接hive 

#node02改成你要远程连接的主机名

beeline -u jdbc:hive2://node02:10000 -n root -p

#显示下面的结果就表示你连上了,恭喜!如果没连上,继续往后看(其实这是网上大多数的做法)

 五、其他问题

1、你可能变了一个问题,连接被拒绝。看到这里你可能疑惑了,这他喵的是是什么问题,我在Hadoop的core-site.xml添加了呀,怎么还被拒绝。

 2、其实就是安全问题(三台机器都要执行关闭防火墙退出安全模式

 #关闭防火墙

systemctl stop firewalld.service    

 #防火墙重启不启动

systemctl disable firewalld.service

 #查看防火墙服务(显示dead说明关掉了)

systemctl status firewalld.service

 #退出安全模式

hdfs dfsadmin -safemode leave

 3、然后远程连接,同上,这样就算连上了

六、总结 

        以上就是hive远程部署连不上的相关问题,当hive远程连不上时,多半时用户权限问题或者是安全问题。本文还有许多不足的地方,欢迎各位大佬指点;如果觉得本文解决了你hive远程连接不上的问题,请予以支持,给予我记录更多文章的动力。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。