问题描述
在阿里云服务器上安装的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
标签:exception,jobhistory,0.0,hadoop01,报错,238.2,10020,172.23 From: https://www.cnblogs.com/yeyuzhuanjia/p/17974586