2014-04-23 77 views
1

我知道還有另外一個問題,但目前還沒有答案,所以我會試着更詳細地提問。Haddoop - MapReduce在使用YARN時運行速度極其緩慢

我正在Amazon 2 EC2實例上設置的2節點羣集上使用Hadoop 2.2.0運行map-reduce作業;主節點是一個介質實例,從節點也是一個介質實例。它的運行速度非常緩慢,需要17分鐘,但是當我在同一個簇上運行同樣精確的作業而沒有紗線時,它會在1分鐘內運行。這裏是我的mapred-site.xml中的樣子:

<configuration> 
     <property> 
     <name>mapreduce.framework.name</name> 
     <value>yarn</value> 
     </property> 
    </configuration> 

如果我的mapreduce.framework屬性更改爲「本地的,所以該文件只讀取:

<configuration> 
     <property> 
     <name>mapreduce.framework.name</name> 
     <value>local</value> 
     </property> 
    </configuration> 

然後我可以運行在不到一分鐘的時間內完成相同的地圖縮小工作。不過,我想使用YARN,這樣我就可以通過webapp跟蹤map-reduce作業。當我將mapreduce.framework屬性設置爲yarn時,運行作業需要17分鐘以上才能運行完全相同的作業。我無法想象YARN會減緩地圖縮減工作的速度,達到如此極端的水平。

我也使用「top」來跟蹤我的CPU使用情況,看來當我用紗線運行它時,CPU使用率會在不同節點之間分開,但是當我更改時使用「local」運行的處理是在主節點上完成的。我不確定這是否有意義,因爲在我看來,當CPU處理在不同節點之間分開時,它應該運行得更快,而不是更慢。有沒有我忘記在Hadoop中進行配置以便更快地在羣集上運行?

這裏是我的配置文件的其餘部分:

核心的site.xml

<configuration> 
     <property> 
     <name>fs.default.name</name> 
     <value>hdfs://namenode:8020</value> 
     </property> 
    </configuration> 

HDFS-site.xml中

<configuration> 
     <property> 
     <name>dfs.replication</name> 
     <value>2</value> 
     </property> 
     <property> 
     <name>dfs.permissions</name> 
     <value>false</value> 
     </property> 
     <property> 
     <name>fs.checkpoint.dir</name> 
     <value>file:/home/ubuntu/hadoop/hdfs/snn</value> 
     </property> 
     <property> 
     <name>fs.checkpoint.edits.dir</name> 
     <value>file:/home/ubuntu/hadoop/hdfs/snn</value> 
     </property> 
     <property> 
     <name>dfs.namenode.name.dir</name> 
     <value>file:/home/ubuntu/hadoop/hdfs/nn</value> 
     </property> 
     <property> 
     <name>dfs.namenode.name.dir</name> 
     <value>file:/home/ubuntu/hadoop/hdfs/nn</value> 
     </property> 
    </configuration> 

紗的site.xml

<configuration> 
     <property> 
     <name>yarn.resourcemanager.resource-tracker.address</name> 
     <value>namenode:8031</value> 
     </property> 
     <property> 
     <name>yarn.resourcemanager.address</name> 
     <value>namenode:8032</value> 
     </property> 
     <property> 
     <name>yarn.resourcemanager.scheduler.address</name> 
     <value>namenode:8030</value> 
     </property> 
     <property> 
     <name>yarn.resourcemanager.admin.address</name> 
     <value>namenode:8033</value> 
     </property> 
     <property> 
     <name>yarn.resourcemanager.webapp.address</name> 
     <value>namenode:8088</value> 
     </property> 
     <property> 
     <name>yarn.nodemanager.aux-services</name> 
     <value>mapreduce_shuffle</value> 
     </property> 
     <property> 
     <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> 
     <value>org.apache.hadoop.mapred.ShuffleHandler</value> 
     </property> 
    </configuration> 

機智是否有問題按照我設置的方式?有沒有人遇到這個問題?任何幫助將不勝感激,謝謝!

回答

0

我希望我還記得我在哪裏閱讀這個,所以我可以給你一個參考。除非您有大尺寸的羣集,否則您不會從紗線中獲益。