zoukankan      html  css  js  c++  java
  • hadoop Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out

    程序里面需要打开多个文件,进行分析,系统一般默认数量是1024,(用ulimit -a可以看到)对于正常使用是够了,但是对于程序来讲,就太少了。
    修改办法:
    修改2个文件。
            /etc/security/limits.conf
    vi /etc/security/limits.conf
    加上:
    * soft nofile 102400
    * hard nofile 409600

        $cd /etc/pam.d/
        $sudo vi login
            添加        session    required     /lib/security/pam_limits.so

    针对第一个问题我纠正下答案:
    这是reduce预处理阶段shuffle时获取已完成的map的输出失败次数超过上限造成的,上限默认为5。引起此问题的方式可能会有很多种,比如网络连接不正常,连接超时,带宽较差以及端口阻塞等。。。通常框架内网络情况较好是不会出现此错误的。

    博客 2:

    解决方法:

    # yarn.nodemanager.local-dirs对应的路径必须在hdfs-site.xml中的hadoop.tmp.dir路径下,否则yarn会报错找不到缓存文件

    <property>
    
        <name>yarn.nodemanager.local-dirs</name>
    
        <value>hadoop.tmp.dir/nm-local-dir</value>
    
    </property>

     博客3:

    hive遇到FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask错误

     

    hive遇到FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask错误

    起因

    使用hive做join查询,a表十几万数据,b表1kw多点数据,结果跑起来就是跑一半返回错误,提示如下:

    FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
    
    尝试
    • 实在是没什么解决办法,然后咨询了别人,说看看是不是有不合理数据,然后查了一下,去掉了一个空数据……然后重新跑,还是不行
    • 谷歌之,看到这个网页,意思是这并不是真的错误,需要去看日志。然后同事去看了日志,没看到什么东西
    • 再考虑是不是队列的事情,结果换了个队列,依然是同样的错误
    解决

    这个时候我真的开始怀疑是不是数据过大了……虽然理论上倒是不应该,然后同事说要不你试一下换个引擎,然后把引擎换成了Tez,你妈嗨,22s跑出来了结果……擦

    这让我情何以堪?就换个引擎,你至于差别这么大么,Map-Reduce和Tez让我感觉实在是太吃惊了

    所以再遇到这个问题,确认数据没问题,命令没问题的同学,可以试试这个办法。

    感想

    解决问题的思路,有时候卡住了可以换个思路,这条路堵住了,看看其他的办法

  • 相关阅读:
    Java程序语言的后门-反射机制
    JAVA设计模式-单例模式(Singleton)线程安全与效率
    JAVA设计模式-动态代理(Proxy)源码分析
    Mybatis源码解析,一步一步从浅入深(七):执行查询
    Mybatis源码解析,一步一步从浅入深(六):映射代理类的获取
    python程序中的进程操作
    进程
    操作系统的发展史
    详尽实用的 PyCharm 教程
    python的socketserver模块实现TCP/UDP并发
  • 原文地址:https://www.cnblogs.com/LIAOBO/p/14139999.html
Copyright © 2011-2022 走看看