1 是什么:

Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)

一种新的Hadoop资源管理器,一个通用资源管理系统

为上层提供统一的资源管理与任务调度即监控,提高了集群管理效率,资源使用率,数据共享效率

2 MRv1:包括三个部分:运行是环境(JobTracker和TaskTracker)编程模型(MapReduce)和数据处理引擎(Map,Reduce任务)

JobTracker主要功能:

  • 资源管理,协调平衡集群中的计算节点,合理分配。
  • 任务调度,一个作业对应多个任务,负责任务调度、状态监控、容错管理等。

TaskTracker主要功能:

  • 执行任务,响应JobTracker命令,如启动、停止任务等
  • 汇报心跳:汇报节点健康状况、资源使用情况等。汇报任务执行进度、任务运行状态等。

MRv1存在的主要问题:

  • JobTracker单点故障,如果它挂掉,整个系统无法运转
  • JobTracker负载过重,限制了集群扩展,随着节点规模的增大,成为集群的瓶颈
  • 仅支持MR计算框架,适合批处理、基于磁盘的计算
  • 资源与计算没有很好的解耦设计,一个集群只能使用一个计算框架,如Hadoop&MapReduce集群、Spark集群、Tez集群等。造成管理复杂、资源利用率低的难
  • 综上所述MRv1有以上缺陷:扩展性受限、单点故障、难以支持MR之外的计算框架。多计算框架各自为战,数据共享困难,资源利用率低。这些因素催生了Yarn的产生。

3:Yarn 特点

  • 资源管理与计算框架解耦设计,一个集群资源共享给上层各个计算框架,按需分配,大幅度提高资源利用率
  • 运维成本显著下降,只需运维一个集群,同时运行满足多种业务需求的计算框架
  • 集群内数据共享一致,数据不再需要集群间拷贝转移,达到共享互用
  • 避免单点故障、集群资源扩展得到合理解决

4:Yarn 架构

 角色介绍:

     ResourceManager

                ResourceScheduling : 资源调度

                ApplicationsManager:    Appliacation 的任务管理

    NodeManager:管理对应的一个节点资源管理

                响应Rm的指令,启动或者停止AM

                响应AM的指令,启动或者停止Task

                通过心跳给RM汇报自己情况

    ApplicationMaster:

               给RM汇报心跳

               汇报RM申请资源,开启任务

               AM负责Task管理,比如开启或者关闭,挂掉之后的恢复

    Container:资源的抽象,AM和Task都运行这里

    运行流程

            

yarn 设置任务最大占用量 yarn并行任务数_大数据

客户端提交了一个application

RM分配资源,给NM下一个指令开启AM

NM接收到了指令,创建一个Container运行AM

AM注册到RM里,申请资源

AM申请到资源之后,给NM下达指令,开启任务

NM接收到AM的指令,启动对应的Task

Task运行完成之后给AM汇报心跳

所有任务都完成之后AM想RM申请注销自己

HDFS

架构设计 

  NameNode: 管理员数据

  DataNode: 存储实际的数据

  Client :和客户端交互的

运行流程:

  读文件

      Client 接受请求

      CLient请求NN获取文件的位置

      Client并行读取DN上的数据,在客户端进行合并之后返回给用户

 写文件

       Client 接受请求

       Client请求NN获取文件应该存取到哪里

        Client村这个文件,村的过程是一个流失存储,即clien像一台DN存储block数据,这个DN复制到备份到对应位置,备份集接收到数据之后,再复制到另一台机器上

MR

运行流程

  Pre+map进行数据切片形成一个一个split

Map 将数据转成对应kv形式, 进行partition分区,进行sort排序,进行combine做本地的聚合

shuffle阶段:

  拷贝map阶段的数据,文件的合并,排序

reducer

数据的聚合,输出到hdfs