zoukankan      html  css  js  c++  java
  • Hive提交的MapReduce任务执行中段挂起(从Running状态跳回为Accepted状态)问题解决记录

     一个用Java写的计算程序通过JDBC的方式连接Hive数据库,执行SQL查询语句查询数据。结果对应的MapReduce任务执行到Map 18% Reduce xx%之后,所有的进度输出都变为了Map 0% Reduce 0%

    在排查Java语句无问题后,kill掉了Job,由于Job的log已经不可查,直接尝试重新运行程序

    新的Hive查询创建的MapReduce任务阻塞在了Accepted状态,无法开始Running

    仔细检查了Hadoop的Web页面,发现当前集群的5个节点都变为了Unhealthy状态,可用的Memory和VCore都为0,推测应是资源不足的原因导致的任务无法开始执行

    用“Hadoop Unhealthy”作为关键词,百度到的网页,有一些的做法是重启Yarn的NodeManager和ResourceManager,然而之前已经做过多次重启操作,并无效果

    又找到了一篇文章,提到了Unhealthy原因是bad file,遂查看本集群的Unhealthy原因,发现也是bad file(包括local-file和log-file),确定为是剩余存储空间不足,导致yarn将五个节点都标记为不可用,因此整个集群处于无资源可以执行任务的状态

    集群的5个节点,使用磁盘比例均达到90%以上,甚至更多,由于暂时无法进行数据转移和删除操作,找到了临时解决方法——提高节点健康度检查中磁盘占用的最大值,参考链接:http://stackoverflow.com/questions/29010039/yarn-unhealthy-nodes

    更改$HADOOP_HOME/etc/hadoop/目录下的yarn-site.xml文件,增加property:

     <property>
         <name>yarn.nodemanager.disk-health-checker.min-healthy-disks</name>
         <value>0.0</value>
      </property>
      <property>
         <name>yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage</name>
         <value>99.0</value>
     </property>

    为了为每个节点磁盘稍稍预留空间,此处的最大值设为了99%。

    更改后,执行stop-yarn.sh和start-yarn.sh,重启NodeManager和ResourceManager,在Hadoop的Web页面刷新(http://namenode:8088//),可以看到节点重新回到了Headthy状态,有了可用的Memory和VCore资源,Job可以正常执行了。

    不过以上还是权宜之计,为了让集群可以健康稳定的运行,还是需要及时对集群的磁盘进行清理,备份不常用的数据or补充存储设备

  • 相关阅读:
    记一次授权的APK渗透测试
    Web.config在渗透中的作用
    ctf中关于syscall系统调用的简单分析
    【文件包含&条件竞争】详解如何利用session.upload_progress文件包含进行RCE
    利用python免杀cs shellcode
    记一次ARM架构的ROP利用
    改造冰蝎对抗waf&OpenRASP计划-初探
    java后台管理 开源_12款开源的JAVA后台管理项目
    ECS 选款利器!PTS助您快速上云!
    Ocelot 负载均衡
  • 原文地址:https://www.cnblogs.com/KattyJoy/p/5850223.html
Copyright © 2011-2022 走看看