-
1.影响map和reduce生成个数的数据因子有哪些?
-
map个数的影响因子
1)map输入文件的总大小
2)block块大小
block块越大,块数越少,会降低hdfs元数据压力,并行度降低,处理单个block块的效率越高。
block块越小,块数越多,会导致hdfs压力大,并行度会提高。
3)文件大小
与block越接近越好,若太小,会导致所占block元数据过多,给NameNode造成压力。
4)格式
若可切分,尽量接近blocksize大小即可,大了也无所谓。
若不可切分,则尽量保证文件大小一定要小于blocksize。
5)max.split.size参数
map的个数最终取决于split的个数,在原生的mapreduce中,一个split对应一个block,在hive中,受max.split.size影响,该参数默认值往往是1-3个blocksize的大小。 -
reduce个数由什么决定?
1)自动推测
推测结果的确定时机:任务开始运行之前。
在原生mapreduce中,reduce如果有,则只会产生一个。
在hive中,reduce的个数计算规则是由map端的输入总大小(字节为单位)/ hive.exec.reducers.bytes.per.reducer(hadoop2.7.x版本中默认是64M)
2)自定义设置
map
关于mr的一些问题
最新推荐文章于 2020-10-26 19:51:05 发布
本文深入探讨了影响MapReduce中map和reduce任务生成数量的因素,包括数据因子、配置参数等。同时,分析了MapReduce执行速度慢的原因,如JobTracker单点故障、资源管理限制等。此外,针对内存溢出(OOM)问题,提出了内存参数调整的建议。最后,讨论了数据倾斜问题的分类、原因及解决方案,包括增加JVM内存、调整reduce数量、自定义分区和使用Combiner等策略。
摘要由CSDN通过智能技术生成