2012-05-08 13 views
0

我在hadoop集羣上運行Hive作業。我只是開始知道,如果你只專注於不同的行爲映射器和減速器,性能將得到改善/改變。但直到我還沒有玩過它。直到沒有我玩過Hive並使用默認的mapper和reducer執行查詢?在hadoop中執行作業時如何設置Mapper和Reducer以及如何決定?

正如我所瞭解的mapper和reducer一樣,我很擔心要設置mapper和reducer的值,以使性能得到改變。我也認爲它只需要設置爲主節點,或者我們必須爲所有節點設置?

任何有想法的人都可以解釋一下我的情況。

另外我們在執行作業時需要設置哪些其他參數?

+0

你的意思是設置映射器和減壓器多少? –

+0

是。其實我試圖設置它,但它並沒有反映在各自的工作XML文件。每個作業創建它自己的XML文件。糾正我我錯了。我檢查我的日誌,我找到了所有的環境變量,我hadoop設置在各自的XML中。 在哪裏觸發te命令來設置這些變量(設置mapred.map.tasks,.....)? am設置在/home/hadoop/hive-0.7.1/bin/hive -e'set mapred.map.tasks'?它是否正確? –

回答

1

根據我的理解,最好的數字映射器並不是您爲每個作業設置的東西。 它由JobTracker計算,考慮每個節點的插槽數量(您在MapRed-site.xml中設置的集羣範圍,您擁有的拆分數量以及其他作業(如果您使用Capacity of Capacity Scheduler) - 排隊參數爲也考慮到了)。
減速器的數量會影響結果以及其可以在此設置每個作業。通過以下命令
集mapred.reduce.tasks = 128

+0

我所做的是我已經在路徑上設置了這個值:「/home/hadoop/hive-0.7.1/bin/hive -e'set mapred.reduce.tasks = 128'」。 當我運行我的作業時,我發現作業的xml文件與我設置的值不同。其實我想提高工作執行的表現。所以我正在試圖用mapper和reducer。 我想在mapred-site.xml中設置所有的值,以便它可以將這個屬性反映到所有將要執行的作業。爲此,我該怎麼做?我應該在哪裏執行這些命令(我的意思是路徑)? –

+0

請看下面的答案(我的)http://stackoverflow.com/questions/10448204/how-to-increase-the-mappers-and-reducers-in-hadoop-according-to-number-of-instan/ 10469029#10469029 –

+0

公平的或(不)的容量調度程序,請。無法編輯此答案,因爲少於6個字符。 :-( – zeekvfu

相關問題