2014-02-27 15 views
5

我在少數功能強大的機器上部署了Hadoop 2.2羣集。我有一個約束來使用YARN作爲框架,我不太熟悉。在YARN中控制和監視同時執行的映射/減少任務的數量

  1. 如何控制實際地圖的數量並減少並行運行的任務數量?每臺機器都有許多CPU核心(12-32)和足夠的RAM。我想最大限度地利用它們。
  2. 如何監控我的設置實際上是否可以更好地利用機器?我在哪裏可以檢查在給定工作中使用了多少個核心(線程,進程)?

預先感謝幫助我融化這些機器:)

回答

4

1.
在MR1中,mapred.tasktracker.map.tasks.maximum和mapred.tasktracker.reduce.tasks.maximum性質所決定的每個的TaskTracker多少地圖和減少時隙了。

這些屬性不再存在於YARN中。相反,YARN使用yarn.nodemanager.resource.memory-mb和yarn.nodemanager.resource.cpu-vcores,它們控制每個節點上的內存和CPU的數量,兩者都可用於這兩個映射並且減少

基本上:
YARN沒有TaskTracker,只是通用的NodeManagers。因此,沒有更多的Map插槽和Reduce插槽分離。一切都取決於使用的內存量/要求

2.

使用Web UI,你可以得到很多監控/管理這類資訊的:

的NameNode - HTTP://:50070/
資源管理器 - HTTP://:8088/

此外阿帕奇Ambari是爲這樣的: http://ambari.apache.org/

和色調與Hadoop的接口/紗線集羣中的許多方面: http://gethue.com/

3
  1. 有從Hortonworks
  2. 紗構造一個good guide你可以分析你的工作在Job History服務器。通常可以在端口19888上找到。AmbariGanglia對於集羣利用率測量也非常有用。
2

我有同樣的問題, 爲了增加映射器的數量,它的建議,以減少輸入分配的大小(每個輸入分配由映射處理,所以一個容器)。我不知道該怎麼做,

事實上,Hadoop的2.2 /紗不考慮沒有以下設置

<property> 
    <name>mapreduce.input.fileinputformat.split.minsize</name> 
    <value>1</value> 
</property> 
<property> 
    <name>mapreduce.input.fileinputformat.split.maxsize</name> 
    <value>16777216</value> 
</property> 

<property> 
    <name>mapred.min.split.size</name> 
    <value>1</value> 
</property> 
<property> 
    <name>mapred.max.split.size</name> 
    <value>16777216</value> 
</property> 

最好