mapReduce中重要引數調優
阿新 • • 發佈:2019-01-08
現在我們來假設一個叢集有一個namenode以及8個datanode,這是一個很客觀的叢集。我們假設上面的資料都是三備份,那麼本地資料率為3/8。首先資料要進行map,然後merge,然後reduce程序進行copy,最後進行reduce,其中的merge和copy總稱可以為shuffle。在你起一個job前,hadoop需要知道你要啟動多少個map,多少個renduce程序,如果你進行預設引數啟動,那麼預設只有一個map執行緒。這個速度是很慢的。設定map啟動個數的引數是mapred.map.tasks,reduce則是mapred.reduce.tasks。這兩個引數可以說是對整個叢集的效能起主導型作用的引數,除錯也基本上圍繞這兩個引數。那大家要問就兩個引數有什麼好來回修改的呢?其實,這兩個引數的設定配比也直接影響到其他的引數的設定。首當其衝的就是mapred.tasktracker.map.tasks.maximum
以及 mapred.tasktracker.reduce.tasks.maximum。因為這兩個引數設定了一臺伺服器上最多能同時執行的map和reduce數。