hadoop 异常 reduce长时间卡住停滞不前的问题

Hadoop集群故障排查
本文记录了一次Hadoop集群中因多个磁盘损坏导致的任务堵塞问题。通过监测发现datanode磁盘故障,并采取更换磁盘及重启节点措施。但随后出现任务执行卡顿现象,最终通过移除问题节点解决了该问题。

单个节点的命名问题也会导致这个问题,具体解决办法:

http://blog.youkuaiyun.com/lxpbs8851/article/details/11820601

磁盘损坏的解决办法:

起因:

datanode的磁盘挂掉了2个

昨天的任务跑完了之后,检查了下dfsadmin -report

监测到集群之中有个节点的 Configured Capacity 比其它的节点少了差不多2个磁盘的容量;

然后去检查了下这个节点 发现确实有2个磁盘出了问题。

于是。重启 换磁盘 ,重新启动了节点。

然后在此节点上 执行了balancer

问题出现了:

早上到公司,发现 基本上所有的任务全部都hold了,平时只需要2分钟跑完的任务,一直堵在那边。

后台执行任务,发现了一个奇怪的现象,有些任务能够顺利的进行,而另外大部分的任务执行的时候 出现

map能达到100% 但是reduce基本上执行到30% 或者32% 的时候会卡住 等上半个小时也不会前进。

临时的解决办法:

查询了下 昨天新增的节点,由于最近才接触到这个集群,发现这个节点的数据已经有大半年没有更新了,意思就是死了大半年了、

于是果断的 干掉了这个节点。

重新执行 被堵住的任务,任务终于能够顺利的进行了。

更加详细的原因,还需要时间去查证。

原因找到了:

是因为这个datanode上面的多个磁盘都坏掉了。

处理过程:

http://blog.youkuaiyun.com/lxpbs8851/article/details/17503805

Hadoop任务中,当reduce阶段在99%时,通常与数据倾斜、资源配置或系统配置有关。以下是针对这一问题的分析与解决方案: ### 数据倾斜问题 Hadoop任务在reduce阶段卡住的主要原因之一是**数据倾斜**。当数据分布不均时,某些reduce任务需要处理远多于其他任务的数据,导致整体任务进度被拖慢。例如,在执行Join或Group By操作时,若某些key的数据量特别大,这些key会被分配到同一个reduce中处理,从而形成瓶颈。解决此类问题的方法包括: - **增加reduce数量**:通过设置`hive.exec.reducers.bytes.per.reducer`参数调整每个reduce处理的数据量,从而更均匀地分配数据[^1]。 - **使用salting技术**:对倾斜的key进行加盐处理,将原本相同的key分散到不同的reduce中处理,减少单个reduce的负载。 - **优化Join操作**:对于大表与小表的Join,可以考虑使用Map Join,将小表加载到内存中,避免reduce阶段的Join操作。 ### 资源配置问题 另一个导致reduce卡住的原因是**资源不足**。YARN作为Hadoop的资源调度器,若配置不当,可能导致任务无法获得足够的内存或CPU资源,从而reduce阶段。可以通过调整以下YARN配置来优化资源分配: - `yarn.nodemanager.resource.memory-mb`:表示每个NodeManager可管理的物理内存总量。若任务内存需求较大,可适当增加此值,例如设置为20480MB。 - `yarn.scheduler.minimum-allocation-mb`:表示每个Container可申请的最小内存。适当调整此值可以提高资源利用率。 - `yarn.nodemanager.vmem-pmem-ratio`:虚拟内存与物理内存的比例。若任务需要较多虚拟内存,可适当增加此值,例如设置为2.1[^4]。 ### 系统配置问题 此外,**系统配置错误**也可能导致reduce任务卡住。例如,主机名配置不一致可能影响Hadoop节点之间的通信。确保以下配置正确: - `/etc/sysconfig/network`中的主机名应与`slaves`文件中配置的主机名一致。 - 若修改过主机名,需确保所有相关配置文件同步更新,以避免节点无法正确识别彼此[^3]。 ### 示例配置调整代码 以下是一个YARN配置调整的示例,可在`yarn-site.xml`中添加: ```xml <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>20480</value> </property> <property> <name>yarn.scheduler.minimum-allocation-mb</name> <value>2048</value> </property> <property> <name>yarn.nodemanager.vmem-pmem-ratio</name> <value>2.1</value> </property> ``` ### 总结 解决Hadoop reduce任务在99%问题,需从数据倾斜、资源配置和系统配置三个方面入手。通过优化数据分布、调整YARN参数以及确保系统配置一致性,可以有效提升任务执行效率,避免任务顿。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值