hadoop MR任务优化总结

在处理大数据灌库工作中,MR任务的优化至关重要。本文总结了三点优化建议:一是尽量避免使用reduce任务,因为其涉及的数据拉取、shuffle和排序过程消耗资源;二是提升单节点并发度,而不是盲目增加mapper数,以确保在资源有限时也能实现高并发;三是避免处理大量小文件,通过合并文件到HDFS block大小来提升处理效率。

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

最近在做数据灌库工作,数据量较大不能基于单机进行灌库,需要编写MR任务。由于做MR开发经验不足,几经优化才满足灌库性能要求,这里总结一下。

如非必要,请规避reduce任务

reduce任务涉及跨计算节点拉取数据,shuffle及数据排序,而这些过程都是很耗资源的。
对于灌库任务来说,我们没有必要对数据做排序,完全不要reduce任务,不要画蛇添足地去将reduce设置为cat,看上去cat只是作了数据的打印,但因此引入的资源消耗是很大的
最简单的规避reduce任务的方式就是设置reduce为NONE,如
hadoop streaming \
-D fs.default.name=${NJ_HDFS_NAME}\
-D hadoop.job.ugi=${RANK_RP_UGI}\
-D mapred.job.tracker=${JOB_TRACKER}\
-D mapred.job.map.capacity=${capacity}\
-D mapred.map.over.capacity.allowed=false\
-D mapred.job.priority=VERY_HIGH\
-D mapred.job.queue.name=rank-rp\
-D mapred.job.name=import2redis_showlist\
-files conf\
-files monitor\
-file bin/import2redis.sep\
-input ${input_path}/part-*\
-output ${output_path}\
-mapper "./import2redis.sep --flagfile=./conf/gflags.conf.showlist --bvar_dump_file=./monitor/import2redis.bvar --bvar_dump_interval=1 --bvar_dump=true" \
-reducer NONE
<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值