dfs.block.size=268435456
hive.merge.mapredfiles=true
hive.merge.mapfiles=true
hive.merge.size.per.task=256000000
mapred.map.tasks=2
因为合并小文件默认为true,而dfs.block.size与hive.merge.size.per.task的搭配使得合并后的绝大部分文件都在300MB左右。
CASE 1:
现在我们假设有3个300MB大小的文件,那么goalsize = min(900MB/2,256MB) = 256MB (具体如何计算map数请参见http://blog.sina.com.cn/s/blog_6ff05a2c010178qd.html)
所以整个JOB会有6个map,其中3个map分别处理256MB的数据,还有3个map分别处理44MB的数据。
这时候木桶效应就来了,整个JOB的map阶段的执行时间不是看最短的1个map的执行时间,而是看最长的1个map的执行时间。所以,虽然有3个map分别只处理44MB的数据,可以很快跑完,但它们还是要等待另外3个处理256MB的map。显然,处理256MB的3个map拖了整个JOB的后腿。
CASE 2:
如果我们把mapred.map.tasks设置成6,再来看一下有什么变化:
goalsize = min(900MB/6,256MB) = 150MB
整个JOB同样会分配6个map来处理,每个map处理150MB的数据,非常均匀,谁都不会拖后腿,最合理地分配了资源,执行时间大约为CASE 1的59%(150/256)
案例分析:
虽然mapred.map.tasks从2调整到了6,但是CASE 2并没有比CASE 1多用map资源,同样都是使用6个map。而CASE 2的执行时间约为CASE 1执行时间的59%。
从这个案例可以看出,对mapred.map.tasks进行自动化的优化设置其实是可以很明显地提高作业执行效率的。
相关推荐
在MapReduce任务中读取Avro文件,会使用到avro-mapred.jar。 然而目前的avro-mapred.jar是基于较老的版本的,使用时会报错: org.apache.hadoop.mapred.YarnChild: Error running child : java.lang....
hadoop 2.9.0 mapred-site.xml 全部属性集,默认值及属性描述,其中关键属性已使用pdf注释
Hadoop源码 包含mapred
mapred.github.io
org.apache.hadoop.mapreduce.lib.map org.apache.hadoop.mapreduce.lib.output org.apache.hadoop.mapreduce.lib.partition org.apache.hadoop.mapreduce.lib.reduce org.apache.hadoop.mapreduce.security ...
hadoop mapreduce测试样例,文档,源码
Hadoop的mapred默认配置文件
mapred-site.xml.template
ERROR org.apache.hadoop.mapred.TaskTracker: Can not start task tracker because java.io.IOException: Failed to set permissions of path: \tmp\hadoop-admin \mapred\local\ttprivate to 0700 at org.apache...
avro-mapred-1.7.7-hadoop2.jar
补充:配置yarn的步骤:1、配置yarn-site.xml;2、配置mapred-site.xml;3、配置历史服务器。
Hadoop集群搭建配套配置文件
mapred.tasktracker.reduce.tasks.maximum dfs.data.dir 8.HDFS监控项含义 Configured Capacity DFS Used DFS Used% DFS Remaining% Live Nodes Dead Nodes 9.MapReduce监控项含义 Maps Reduces Map Task Capacity ...
HA高可用所需要的mapred-site.xml
mapred.capacity-scheduler.queue.<queue-name>.capacity:设置调度器中各个queue的容量,这里指的是占用的集群的slots的百分比,需要注意的是,所有queue的该配置项加起来必须等于100,否则会导致JobTracker启动...
官方版本,亲测可用
自定义配置文件: core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml四个配置文件存放在$HADOOP_HOME/etc/hadoop这个路径上,用户可以根据项目需求重新进行修改配置。
MapReduce集群多用户作业调度方法的研究与实现