一個簡單的HQL最佳化

來源:互聯網
上載者:User

線上做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:

650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131229/2052532511-0.png" title="map1.png" alt="142236756.png" />


顯然瓶頸集中在第二個MAP上,reduce的shuffle time執行了207秒,計算了300s不到;這個table_big是個外部表格,查看一下檔案發現是一個250MB左右的gz檔案,原因基礎上清楚了,在該Job設定了一下mapred.reduce.tasks=8就可以解決了:

首先是降低每個reduce的計算時間,其次是today分區的檔案增加進而增加MAP數,這個要明天才能看到效果了:P

650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131229/205253G51-1.png" title="map2.png" alt="142310482.png" />

可以看到每個reduce的計算時間已經降到30秒;同時,產生today分區的檔案也是8個30MB的小檔案,為接下來增加MAP做好準備


本文出自 “MIKE老畢的部落格” 部落格,請務必保留此出處http://boylook.blog.51cto.com/7934327/1301072

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.