美文网首页我爱编程
MapReduce和YARN详解

MapReduce和YARN详解

作者: 糊涂蟲 | 来源:发表于2018-05-28 16:52 被阅读0次

1、MapReduce是什么

        MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。(摘自百度百科)

2、版本

hadoop 1.x    对应的MR1(计算+资源调度平台)

JobTracker:资源调度监控的平台

TaskTracker:计算平台     运行map    task和reduce    task

hadoop   2.x    对应MR2(计算        调度平台为yarn)

不需要部署组件的

3、YARN简介

        Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。(摘自百度百科)

4、YARN架构

YRAN架构图

YARN主从结构,有两个进程:Resource   Manager    和    Node   Manager

1.Resource  Manager (RM):负责对各NM上的资源进行统一管理和调度。将AM分配空闲的Container运行并监控其运行状态。对AM申请的资源请求分配相应的空闲Container。主要由两个组件构成:调度器(Scheduler)和应用程序管理器(Application  Manager)。

        Scheduler:调度器根据容量、队列等限制条件(如每个队列分配一定的资源,最多执行一定数量的作业等),将系统中的资源分配给各个正在运行的应用程序。调度器仅根据各个应用程序的资源需求进行资源分配,而资源分配单位是Container,从而限定每个任务使用的资源量。

        Application  Manager:应用程序管理器负责管理整个系统中所有应用程序,包括应用程序提交、与调度器协商资源以启动AM、监控AM运行状态并在失败时重新启动等,跟踪分给的Container的进度、状态也是其职责。

2.Node  Manager(NM):NM是每个节点上的资源和任务管理器。它会定时地向RM汇报本节点上的资源使用情况和各个Container的运行状态;同时会接收并处理来自AM的Container 启动/停止等请求。

        ApplicationMaster(AM):用户提交的应用程序均包含一个AM,负责应用的监控,跟踪应用执行状态,重启失败任务等。

ApplicationMaster是应用框架,它负责向ResourceManager协调资源,并且与NodeManager协同工作完成Task的执行和监控。

        Container(容器):是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等,当AM向RM申请资源时,RM为AM返回的资源便是用Container 表示的。 YARN会为每个任务分配一个Container且该任务只能使用该Container中描述的资源。

5、YARN的工作流程(mr提交应用程序)

YARN工作流程

1.用户向YARN中提交应用程序,其中包括AM程序、启动AM的命令、用户程序等。

2.RM为该应用程序分配一个container,并向对应的NM通信,要求他在这个container中启动AM。

3.AM向RM注册,这样用户可以直接通过RM查看应用程序的运行状态,然后它将为任务申请资源,并监控其运行状态,直到运行结束(重复4-7)

4.AM采用轮询的方式通过RPC协议向RM申请和领取资源。

5.AM申请到资源后,便于NM通信,要求其启动任务。

6.NM为任务设置好运行环境(包括环境变量、JAR包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过运行改脚本启动任务。

7.各个任务通过RPC协议向AM汇报自己的进度和状态,让AM随时掌握各个任务的运行状态,从而可以在任务失败是重启任务。在应用程序运行过程中,用户可随时通过RPC向AM查询应用程序的当前运行状态。

8.应用程序运行完成后,AM注销并关闭自己。

6、YARN命令

yarn application –list                                   查看

yarn application –kill -applicationId             杀死进程

相关文章

  • MapReduce和YARN详解

    1、MapReduce是什么 MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"M...

  • MapReduce/Yarn详解

    MapReduce框架结构## MapReduce是一个用于大规模数据处理的分布式计算模型MapReduce模型主...

  • Yarn~新的 map-reduce 框架

    Hadoop 新 MapReduce 框架 Yarn 详解 - zero516cn - 博客园http://www...

  • Yarn~新的 map-reduce 框架

    Hadoop 新 MapReduce 框架 Yarn 详解 - zero516cn - 博客园http://www...

  • 07.YARN

    YARN 一、YARN概述 1). YARN产生背景 MapReduce1.x ==> MapReduce2.xm...

  • 【复习001】-20170722

    一、大数据基础 二、MapReduce和Yarn功能与架构Yarn(集群资源管理)的组件 三、MapReduce客...

  • YARN配置

    YARN 是从 MapReduce 中分离出来的,负责资源管理与任务调度。YARN 运行于 MapReduce 之...

  • Hive

    HadoopHDFS 存储数据YARN 资源管理MapReduce 处理数据Mapreduce is hard...

  • 大数据生态系统

    hadoop里面可分为HDFS和mapreduce和yarn HDFS(Hadoop Distributed Fi...

  • spark 中参数参考值说明

    master yarn 因为 E-MapReduce 使用 Yarn 的模式,所以这里只能是 yarn 模式。 y...

网友评论

    本文标题:MapReduce和YARN详解

    本文链接:https://www.haomeiwen.com/subject/gazmjftx.html