zoukankan      html  css  js  c++  java
  • 执行 yarn application 连接失败且超时的错误解决

    在AWS EMR使用多个Master高可用部署场景下,需要创建3台Master节点上。登录到其中一台节点,运行如下命令:

    yarn application -list

    在某些场景下会遇到如下报错。报错信息:

    WARN ipc.Client: Failed to connect to server: ip-172-31-22-134.cn-northwest-1.compute.internal/172.31.22.134:8032: retries get failed due to exceeded maximum allowed retries number: 0
    java.net.ConnectException: Connection refused

     

    错误场景如下截图。

    不过在等待一段时间后,也可以看到yarn返回了最终的输出。如下截图。

    造成这个问题是因为EMR开启了多Master部署,有三台Master节点,分别叫做rm1、rm2、rm3。当前登录的节点可能是rm1,运行yarn查询的时候默认先查询rm1。但是,整个集群的master已经切换走了,rm1并不是master角色,所以yarn会反复查询失败,然后去轮询到下一个节点rm2,继续失败,最后在rm3节点查询完成。

    接下来验证下,当前的集群中谁是master节点。执行如下命令:

    yarn rmadmin -getAllServiceState

    执行效果如下截图。

    可以从如上命令看出,IP结尾是239的才是master节点。那么这个239节点是否在yarn查询列表的第一位呢?还是排在最后一位?

    编辑如下配置文件:

    sudo vim /etc/hadoop/conf.empty/yarn-site.xml

    查看里边的resource manager的顺序如下:

    如上截图可以看到,顺序是rm1、rm2、rm3,而rm1对应的IP并不是当前的master节点。所以才有了这个查询失败。

    解决办法:把顺序改成rm3、rm2、rm1。改完后,再运行yarn,就没有报错了。如下截图。

    至此问题解决。

  • 相关阅读:
    python matplotlib 绘图
    python set add 导致问题 TypeError: unhashable type: 'list'
    python 子类继承父类的__init__方法
    python 内存监控模块之memory_profiler
    git log 常用命令
    wireshark使用教程
    python os.path模块
    Linux crontab 定时任务
    linux环境变量LD_LIBRARY_PATH
    Linux的ldconfig和ldd用法
  • 原文地址:https://www.cnblogs.com/weifeng1463/p/13588826.html
Copyright © 2011-2022 走看看