腾讯云服务器安装hadoop3.2.1,运行wordcount报错,YarnChild链接不到MRAppMaster服务器

运行自带的wordcount程序偶发性报错,有时候可以,有时候不可以,有谁遇到过这个情况吗?
一、集群有四台腾讯云服务器:
master
slave1
slave2
slave3
二、每台服务器,/etc/hosts本机配置内网IP,其他配置外网IP
三、;看了日志要是YarnChild和MRAppMaster在一台机器就能运行成功,要是YarnChild和MRAppMaster不是分配上一台机器上就会失败;日报报错是YarnChild连接不上MRAppMaster服务器(很奇怪YarnChild节点访问MRAppMaster节点的内网IP,应该是访问外网IP,图中的地址是MRAppMaster节点的内网IP)。我已经设置了可以通过域名访问,但是错误日志里面也有没有看到域名的替换。

img

    <property>
        <name>dfs.datanode.use.datanode.hostname</name>
        <value>true</value>
    </property>
    <property>
        <name>dfs.client.use.datanode.hostname</name>
        <value>true</value>
        <description>only cofig in clients</description>
    </property>

四台小集群,为啥不用cdh搭建,cm管理很香。这个问题是节点配置的网络有问题,通信异常。

我也遇到了相同的问题,目前还没有解决

YarnChild访问MRAppMaster的时候用的是MRAppMaster的内网ip,如果YarnChild和MRAppMaster不在一个局域网的话访问MRAppMaster的内网ip就会出错

解决了
hdfs-site.xml 添加

<property>
    <name>dfs.namenode.datanode.registration.ip-hostname-check</name>
    <value>false</value>
</property>
<property>
    <name>dfs.client.use.datanode.hostname</name>
    <value>true</value>
 </property>
<property>
    <name>dfs.datanode.use.datanode.hostname</name>
    <value>true</value>
 </property>

没有找到配置能够改YarnChild的请求为hostname,感觉是不是写死在代码里了