线上做Job迁移:从GP迁移到Hadoop,发现有些Job原来跑了2-3分钟到Hadoop上跑到10分钟左右,这样的话会影响到迁移的效果;一个明显的Query如下:
Insertinto table_big partition(dt=today) select xxx from table_hour_incrementala,table_big b where a.id=b.id and b.dt=yesterday;
查看一下grace:
显然瓶颈集中在第二个MAP上,reduce的shuffle time执行了207秒,计算了300s不到;这个table_big是个外部表,查看一下文件发现是一个250MB左右的gz文件,原因基础上清楚了,在该Job设置了一下mapred.reduce.tasks=8就可以解决了:
首先是降低每个reduce的计算时间,其次是today分区的文件增加进而增加MAP数,这个要明天才能看到效果了:P
可以看到每个reduce的计算时间已经降到30秒;同时,产生today分区的文件也是8个30MB的小文件,为接下来增加MAP做好准备
本文转自MIKE老毕 51CTO博客,原文链接:http://blog.51cto.com/boylook/1301072,如需转载请自行联系原作者