MapReduce运行架构

1.Hadoop1.x版本

  • 运行架构是一个主从架构。主节点是JobTracker,从节点是TaskTracker
  • 主要流程:
      客户端运行一个应用程序,然后JobTracker会向NameNode发送请求,请求这个应用程序需要的数据在哪个DataNode上。然后JobTracker会向有数据的TaskTracker发消息,让它分配一些资源出来,我要发布任务去执行。
  • JobTracker的作用:
      资源调度主节点和任务调度主节点。所以JobTracker的压力很大,容易挂掉。
  • 因为JobTracker和TaskTracker是MapReduce自带的,与MapReduce耦合度太高,如果还有一个spark的应用程序也要执行,由于两者之间没有通信,就会造成资源隔离以及抢夺问题。

2.Hadoop2.x版本
  采用yarn资源调度器。也是主从架构,主节点是ResourceManager,并且还有一个备用的ResourceManager,从节点是NodeManager。流程如下:

  1. 客户端拿到应用程序计算的文件的路径找NameNode获取每一个block的位置,并生成一个报表。
  2. 客户端找ResourceManager为ApplicationMaster申请资源。
  3. ResourceManager接收客户端的申请,然后查看哪一个节点上资源充足,如果大部分节点的资源充足,那就随机找一台节点启动container容器.
  4. 在第三步选择的节点中规划出一个container以后,NodeManager会在这个容器中启动一个ApplicationMaster(主要负责任务调度)。
  5. 客户端会将生成的报表交给ApplicationMaster。
  6. ApplicationMaster拿到报表后,会根据报表去找ResourceMaster申请资源。如果一个block块的三个存储位置都没有资源,那么就会在与block存储位置同机架上选择一个节点。如果同机架上的节点也都没有资源,那么就随机找一台节点。然后在选中的节点中规划出一个container,在容器中启动一个yarn-child.
  7. ApplicationMaster发布map task到各个yarn-child中执行。
  8. yarn的引入使得多个计算框架可运行在一个集群中。只要每个应用程序实现一个ApplicationMaster。

3.yarn集群的搭建
  步骤:

  1. 集群规划
    在这里插入图片描述

2.配置mapred-site.xml文件。
  一开始在Hadoop的配置文件中没有mapred-site.xml文件,只有mapred-site.xml文件,需要把mapred-site.xml文件复制一份,并重命名为mapred-site.xml,然后在做配置。配置信息如下:

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

3.配置yarn-site.xml文件

<property>
   <name>yarn.nodemanager.aux-services</name>
   <value>mapreduce_shuffle</value>
</property>
<property>
   <name>yarn.resourcemanager.ha.enabled</name>
   <value>true</value>
 </property>
 <property>
   <name>yarn.resourcemanager.cluster-id</name>
   <value>cluster1</value>
 </property>
 <property>
   <name>yarn.resourcemanager.ha.rm-ids</name>
   <value>rm1,rm2</value>
 </property>
 <property>
   <name>yarn.resourcemanager.hostname.rm1</name>
   <value>node03</value>
 </property>
 <property>
   <name>yarn.resourcemanager.hostname.rm2</name>
   <value>node04</value>
 </property>
 <property>
   <name>yarn.resourcemanager.zk-address</name>
   <value>node02:2181,node03:2181,node04:2181</value>
 </property>

4.每个节点都这样配置完成后,然后就可以启动yarn集群。命令是:start-yarn.sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值