Hadoop Rolling Upgrade经验总结

本文分享了一次Hadoop Rolling Upgrade的经验,包括兼容性测试、升级后遇到的性能不稳定问题,以及针对JVM层面和HDFS系统的调优措施。在JVM层面,调整了NN heap大小和增加了更细粒度的控制参数;在HDFS层面,进行了NN与JN分离、async editlog、公平RPC队列和Fsimage压缩等优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言


从去年下半年开始,组内就开始着手准备升级公司内部的Hadoop集群,由于老版本实在已经落后社区很多了,也陆续碰到很多社区上已经被fix的bug。所以决定做一个大胆的举动:升级公司内部大集群版本。像这种比较aggressive的做法,很多人不是一开始能够接受,它存在不可控的风险。但所幸,在今年暑假,我们成功将内部版本升到了最近比较新的Hadoop版本。本文是对此过程的经验教训,相信会给很多想要做Hadoop Rolling Upgrade的同学有所帮助。

Rolling Upgrade兼容性测试


我们此次升级采用的不是停服务的方式,而是Rolling Upgrade的方式,也算是对我们团队的一个考验吧。所以在这里面,要做大量的兼容性测试。因为rolling的过程中,会存在新老版本(NN,DN,RM和NN)共存的情况。再加上同时在跑的YARN,情况组合起来还是挺多的。不过,测试下来,除了HDFS新版本特性异构存储(StorageType)出现明显不兼容错误,其它都正常。

升级后的性能不稳定问题


其实前期兼容性测试做的足够完善的情况下时,整个Rolling Upgrade的过程问题不大。按照官方文档的建议,从NN开始升级,然后DN一点点的rolling替换即可,用户应用对此无感知。

但是后面我们怎么也没料到,在新的升级后的版本运行过程中,出现了严重的性能不稳定问题,主要表现为RPC周期性变慢,到最慢的时候,延时已经达到秒级别,甚至到了用户都无法正常使用的情况。但是每次一重启NN,这个问题立马恢复,然后过一段时间,又开始变慢。

Jvm层面调优

像这种系统逐渐变慢的问题,我们的第一反应,HDFS本身应该是没问题,可能是jvm层面,比如某些资源没有被回收的问题,或gc参数没配对。于是乎,我们加了以下对我们有用的参数:

1).调整NN heap大小,之前总heap设置过大,导致其几乎不f

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值