Hadoop YARN

  • Hadoop1.x中MapReduce存在的问题:
    • 基于MapReduce:Master/Slave架构,1个JobTracker带多个TaskTracker
      • 存在JobTracker单点问题。
    • 不能支持除了MapReduce作业之外的其他作业(比如Spark作业)


  • XXX on YARN:
    • 底层共享同一个HDFS集群上的数据
    • YARN作为接口层(统一接口抽象、不同实现)
    • 各种作业可以运行在YARN之上:
      • MapReduce 离线批处理(batch)
      • Tez 交互式处理(Interactive)
      • HBase 实时在线处理(online)
      • Storm 流式处理(Streaming)
      • Spark 内存处理(In-memory)


  • YARN架构
5) Client
    提交作业
    查询作业的运行进度
    杀死作业

  • 负责集群资源管理
1)ResourceManager: RM
    整个集群同一时间提供服务的RM只有一个,负责集群资源的统一管理和调度
    处理客户端的请求: 提交一个作业、杀死一个作业
    监控我们的NM,一旦某个NM挂了,AM应该进行处理

2) NodeManager: NM
    整个集群中有多个,负责自己本身节点资源管理和使用
    定时向RM汇报本节点的资源使用情况
    接收RM、AM的命令
  • 启动Container,运行Task、AM
    
  • 负责为作业(job)调度资源
3) Application Master : AM
    负责作业的管理(在这里,作业也叫做Application)
    一个作业对应一个
    为作业向RM申请资源(core、memory),分配给内部task
    需要与NM通信:启动/停止task(task是运行在NM上的)

4) Container
    封装了CPU、Memory等资源的一个容器
    是 task、AM 运行环境的抽象



  • YARN执行流程
  1. Client提交作业到RM
  2. RM就近选取NM,
  3. NM启动AM(启动一个Container,AM运行其中)
  4. AM向RM注册(从而,Client可以查询作业运行情况)
    1. AM同时向 RM申请资源(可以启动的Container)
  5. 根据申请到的资源,AM与集群中的NM通信
  6. NM启动Task(启动一个Container,Task运行其中)




  • YARN环境搭建

1)mapred-site.xml
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

2)yarn-site.xml
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

3) 启动YARN相关的进程
sbin/start-yarn.sh

4)验证
    ps ux
        ResourceManager
        NodeManager
     YARN 监控 web服务http://NameNode_hostname:8088

5)停止YARN相关的进程
    sbin/stop-yarn.sh

  • 提交MapReduce(MR)作业到YARN上运行:
    • 使用hadoop jar 运行一个jar、mainClass、args...
    • share/hadoop/mapreduce/目录,有一些MapReduce的example









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值