运行Yarn作业时遭遇java.net.ConnectException连接拒绝问题求助
以下是几个核心排查方向:
检查serverB的30170端口监听状态
报错中的30170端口大概率是ResourceManager的自定义通信端口(默认端口为8032)。登录serverB,执行netstat -tulpn | grep 30170或ss -tulpn | grep 30170,确认该端口是否被ResourceManager进程占用。如果无监听记录,说明ResourceManager实际未启动成功,或配置端口与实际监听端口不匹配。验证serverA到serverB的网络连通性
即使进程状态显示正常,也可能存在防火墙/安全组拦截。在serverA上执行telnet serverB 30170或nc -zv serverB 30170测试端口连通性。若连接失败,检查serverB的防火墙规则,开放30170端口,同时确认网络路由是否正常。核对Yarn配置文件中的ResourceManager地址
打开yarn-site.xml,检查yarn.resourcemanager.address、yarn.resourcemanager.scheduler.address等核心参数,确认地址是否指向正确的serverB,端口是否为30170。另外,检查serverA的/etc/hosts文件,确保serverB的主机名能正确解析到对应IP,避免DNS解析错误导致连接失败。重启ResourceManager进程
有时jps显示进程存在,但进程可能处于假死状态。在serverB上执行yarn-daemon.sh stop resourcemanager,等待进程停止后再执行yarn-daemon.sh start resourcemanager,之后查看ResourceManager日志文件(路径通常为$HADOOP_HOME/logs/yarn-*-resourcemanager-*.log),排查启动过程中的异常报错。
内容的提问来源于stack exchange,提问作者Kouvei

