Hive 从一个经典案例看优化mapred.map.tasks的重要性 hive sql 优化

我所在公司所使用的生产Hive环境的几个参数配置如下:
dfs.block.size=268435456
hive.merge.mapredfiles=true
hive.merge.mapfiles=true
[Hive]从一个经典案例看优化mapred.map.tasks的重要性 hive sql 优化
hive.merge.size.per.task=256000000
mapred.map.tasks=2

因为合并小文件默认为true,而dfs.block.size与hive.merge.size.per.task的搭配使得合并后的绝大部分文件都在300MB左右。

CASE1:

现在我们假设有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的后腿。

CASE2:

如果我们把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进行自动化的优化设置其实是可以很明显地提高作业执行效率的。

  

爱华网本文地址 » http://www.aihuau.com/a/25101013/145760.html

更多阅读

谈判技巧和策略案例 从一个谈判案例来看“挂钩”技巧

最近与一渠道系统进行谈判,谈进场合作,该渠道系统是我们公司销售的重要渠道,是公司在接下来的十年必须重视的渠道,所以,公司也十分看重与该渠道的合作。该渠道系统在全国有90多家店,属于国内建材系统店面最多的一家店。经过持续的接触与

房地产营销创新案例 透过经典案例看酸奶的营销创新

饮用酸奶在我国有着悠久的历史,特别是边陲的少数民族最为青睐酸奶。但酸奶作为现代食品以工业化的模式迅速发展则是从1996年开始的。目前全国大中城市中酸奶消费量增长明显,特别是三聚氰胺事件之后,消费者饮用酸奶的习惯得到强化,各乳

罗应金:从一个普通茶农到身家上千万茶王的转变

 回甘是一个品茶的术语,意思是茶水刚入口时感觉平淡甚至苦涩,但稍后就有一种特别的香甜。这种感觉正是万盛区青年镇湛家村党支部书记、重庆市翠信茶业有限公司董事长罗应金,从一个普通茶农发展到身家上千万的茶王的过程。   1973年

声明:《Hive 从一个经典案例看优化mapred.map.tasks的重要性 hive sql 优化》为网友余生谈酒分享!如侵犯到您的合法权益请联系我们删除