最近实现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添加以下属性就行。(XXX表示用户名,上面红框里是用户root所以我就改成的root。千万不要改成主机名!!!!!!)。然后重启Hadoop(stop-all.sh,start-all.sh)。
<property>
<name>hadoop.proxyuser.XXX.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.XXX.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 --service hiveserver2 &”),这样可以使用"jps"查看进程是否起开。
四、启动远程连接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、然后远程连接,同上,这样就算连上了
六、总结 文章来源:https://www.toymoban.com/news/detail-772064.html
以上就是hive远程部署连不上的相关问题,当hive远程连不上时,多半时用户权限问题或者是安全问题。本文还有许多不足的地方,欢迎各位大佬指点;如果觉得本文解决了你hive远程连接不上的问题,请予以支持,给予我记录更多文章的动力。文章来源地址https://www.toymoban.com/news/detail-772064.html
到了这里,关于出现Error: Could not open client transport with JDBC Uri: jdbc:hive2://node02:10000/;user=root:..怎么办?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!