Hive报错:Call From hadoop01/172.23.238.2 to hadoop01:10020 failed on connection exception

问题描述

在阿里云服务器上安装的Hadoop和Hive,刚开始关闭了防火墙。但是由于服务器被被黑客安装挖矿程序,所以开启了防火墙。但是即使开启了所有可能的端口,但是在向Hive中插入数据时,依然报错提示:Call From hadoop01/172.23.238.2 to hadoop01:10020 failed on connection exception。这里提示从hadoop01/172.23.238.2到hadoop01:10020的调用在连接异常时失败,但是hadoop01/172.23.238.2和hadoop01是同一台服务器,连接拒绝真的令人费解。

解决办法

需要手动启动jobhistory,因为这里需要连接本地的10020端口,但是这个端口是属于jobhistory。

$HADOOP_HOME/sbin/mr-jobhistory-daemon.sh start historyserver
令我比较费解是的这个jobhistory在关闭防火墙时不用启动,也可以插入数据。但是开启防火墙后,居然报错连接10020端口拒绝。

 

网上有的说法,这个问题一般是在hadoop2.x版本里会出现,Hadoop的datanode需要访问namenode的jobhistory server,如果没有修改,则默认为0.0.0.0:10020,则可以修改mapred-site.xml文件:

<property>
<name>mapreduce.jobhistory.address</name>

<!-- 配置实际的Master主机名和端口-->
<value>0.0.0.0:10020</value>
</property>

<property>
<name>mapreduce.jobhistory.webapp.address</name>

<!-- 配置实际的Master主机名和端口-->
<value>0.0.0.0:19888</value>
</property>

修改后再启动jobhistory,

$HADOOP_HOME/sbin/mr-jobhistory-daemon.sh start historyserver

posted @ 2024-01-19 14:37  业余砖家  阅读(25)  评论(0编辑  收藏  举报