Hadoop之MR的調優性能

在工作過程中遇到這樣一個問題:就是在map的時候需要讀取大概1T左右的數據,在用集羣的本身的設置之外沒有設置任何參數時發現就光map(純粹就是一個轉發函數)就要跑上兩個小時。

都說讓MR的分區塊大小和Hadoop集羣中的hdfs塊大小一致,這樣保證數據不出現跨網絡的拷貝,其實也用不着一個MR的程序大小和hdfs塊大小一致,因爲從hdfs的數據存儲的架構來看,其有很多的hdfs塊是放在了同一個數據節點上的,這樣如果我們調大MR的分區大小,我們就能連接好節點的其它數據塊了,這樣程序還是跑在了同一個節點上面(沒有發生網絡數據傳輸)。

所以,在調節MR的性能時,如果發現在map的讀數據時時間不理想,可以調大mapred.min.split.size參數(jobConf.setInt("mapred.min.split.size", 512*1024*1024))。多半時候這是有用的!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章