我知道还有另一个问题,但还没有答案,所以我会尝试更详细地询问。
我正在使用Hadoop 2.2.0在我已在Amazon 2 EC2实例上设置的2节点群集上运行map-reduce作业;主节点是中型实例,从节点也是中型实例。它运行速度非常慢,需要17分钟,但是当我在没有纱线的同一集群上运行相同的工作时,它会在1分钟内运行。这是我的mapred-site.xml的样子:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
如果我将mapreduce.framework属性更改为“local”,那么该文件只显示为:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>local</value>
</property>
</configuration>
然后我可以在不到一分钟的时间内运行相同的map-reduce作业。但是,我想使用YARN,以便我可以通过webapp跟踪map-reduce作业。当我将mapreduce.framework属性设置为yarn运行作业时,运行相同的工作需要17分钟以上。我无法想象YARN会将地图缩减工作放慢到如此极端的水平。
我也使用“top”来跟踪我的CPU使用率,似乎当我用yarn运行它时,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 :(得分:0)
我希望我还记得我读到的地方,所以我可以给你一个参考。除非你有大尺寸的簇,否则你不会受益于纱线。