hadoop-mapreduce在使用yarn时运行非常慢

u91tlkcl  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(409)

我知道还有另外一个问题,但是还没有答案,所以我将试着问得更详细一些。
我正在Amazon2EC2示例上设置的2节点集群上使用Hadoop2.2.0运行MapReduce作业;主节点是一个中间示例,从节点也是一个中间示例。它运行得非常慢,需要超过17分钟,但是当我在同一个集群上运行同一个没有Yarn的作业时,它的运行时间不到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会把Map缩小到如此极端的程度。
我还使用“top”来跟踪我的cpu使用情况,似乎当我使用yarn运行它时,cpu使用情况会在不同的节点之间进行分配,然而,当我使用“local”更改run it时,所有的处理都在主节点上完成。我不确定这有什么意义,因为在我看来,当cpu处理在不同的节点之间进行分配时,它应该运行得更快,而不是更慢。是不是有什么东西我忘了在hadoop中配置,让在集群上运行更快?
以下是我的其余配置文件:
core-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>

yarn-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>

我的安排有什么问题吗?还有其他人遇到过这个问题吗?任何帮助都将不胜感激,谢谢!

fzsnzjdm

fzsnzjdm1#

我希望我还记得我在哪里读到的,这样我可以给你一个参考。你不会受益于纱,除非你有大尺寸集群。

相关问题