YARN故障排查

场景:

对HDFS上/input目录提交wordcount任务报错


问题描述

  1. 文件切片有100多个

Job Counters 
        Failed map tasks=270
        Killed map tasks=113
        Killed reduce tasks=1
        Launched map tasks=295
        Other local map tasks=199
        Data-local map tasks=96
        Total time spent by all maps in occupied slots (ms)=4421261
        Total time spent by all reduces in occupied slots (ms)=0
        Total time spent by all map tasks (ms)=4421261
        Total vcore-milliseconds taken by all map tasks=4421261
        Total megabyte-milliseconds taken by all map tasks=4527371264
    Map-Reduce Framework
        CPU time spent (ms)=0
        Physical memory (bytes) snapshot=0
        Virtual memory (bytes) snapshot=0


  2. 同时运行了40+容器,推测YARN资源配置出了问题,查看yarn-site.xml的配置

3. 任务疯狂报code 143

 [2022-06-09 18:23:46.044]Container killed on request. Exit code is 143
[2022-06-09 18:23:46.187]Container exited with a non-zero exit code 143.


原因分析:

1. 文件切片有100多个:根据切片的机制,切片的大小,默认是等于Block的大小,查看数据块的大小,发现Block居然是16MB,总数据量为1.83G,怪不得切片这么多,所以会启动大量的MapTask产生更多的Container容器


2. 发现yarn容器允许管理的物理内存大小为32G,而单节点分配的内存为4G,节点上其他的服务也需要资源

 

 3.虚拟内存的限制问题,超过了设置的虚拟2.1倍的设置 

[2022-06-09 18:04:47.703]Container [pid=3413,containerID=
container_1654768646825_0001_01_000096] is running 291658240B beyond the
'VIRTUAL' memory limit. Current usage: 108.2 MB of 1 GB physical memory used;
2.4 GB of 2.1 GB virtual memory used. Killing container.

问题一解决方案:

hadoop1.x的HDFS默认块大小为64MB;hadoop2.x的默认块大小为128MB。

如果进行数据块的自定义需要修改hdfs-site.xml文件,例如:(先停掉集群,修改完再重启)

<property>
        <name>dfs.block.size</name>
        <value>134217728</value>    --修改为128M
        <description>Block size</description>
</property>

注意: 修改这个值并不会对HDFS上现存的任何文件的块大小产生影响,只会改变新上传文件的块大小。 

问题二解决方案:

在yarn-site.xml中修改如下内容为4G,默认的为8G

<!-- yarn容器允许管理的物理内存大小 -->
  <property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>4096</value>
  </property>

问题三解决方案: 

调节参数:虚拟内存检查关闭或者将设置比例调整为更大的值

 <!-- 虚拟内存检查(限制),默认打开,修改为关闭 -->

<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
  </property>
<!-- 虚拟内存和物理内存设置比例,默认2.1 -->
  <property>
        <name>yarn.nodemanager.vmem-pmem-ratio</name>
        <value>2.1</value>
  </property>

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值