第三章:MapReduce与YARN的理解

1. MapReduce

概述:

  • 一个最终完整版本的MR程序需要用户编写的代码Hadoop自己实现的代码整合在一起才可以;
  • 其中用户负责map、reduce两个阶段的业务问题,Hadoop负责底层所有的技术问题;

MapReduce核心思绪先分再合,分而治之,主要目的:并行运行任务,提高效率。
在这里插入图片描述
注意: 不可拆分的计算任务或相互间有依赖关系的数据无法并行计算:
在这里插入图片描述

MapReduce特点:

  • 易于编程:简单的接口就可以完成分布式程序;
  • 良好的扩展性:MR的分布式计算的特点可以随节点数据增长保持近似于线性增长,增加机器,就可以可以处理海量数据;
  • 高容错性
  • 离线计算
  • 实时计算性能差
  • 不能进行流行计算

MapReduce实例
一个完整的MapReduce程序在分布式运行时有三类

  • MRAppMaster:负责整个MR程序的过程调度及状态协调
  • MapTask:负责map阶段的整个数据处理流程
  • ReduceTask :负责reduce阶段的整个数据处理流程

MaprReduce的阶段组成

  • 一个MapReduce编程模型中只能包含一个Map阶段和一个Reduce阶段,或者只有Map阶段;
  • 不能有诸如多个map阶段、多个reduce阶段的情景出现;
  • 如果用户的业务逻辑非常复杂,那就只能多个MapReduce程序串行运行。
    在这里插入图片描述

2. YARN

YARN概述:YARN是一个通用资源管理系统和调度平台,可为上层应用提供统一的资源管理和调度。

YARN功能说明:

  • 资源管理系统︰集群的硬件资源,和程序运行相关,比如内存CPU等。
  • 调度平台∶多个程序同时申请计算资源如何分配,调度的规则(算法)。
  • 通用∶不仅仅支持MapReduce程序,理论上支持各种计算程序。YARN不关心你干什么,只关心你要资源,在有的情况下给你,用完之后还我。

YARN架构图:
在这里插入图片描述

  • ResourceManager ( RM )
    YARN集群中的主角色,决定系统中所有应用程序之间资源分配的最终权限,即最终仲裁者。接收用户的作业提交,并通过NM分配、管理各个机器上的计算资源。
  • NodeManager (NM )
    YARN中的从角色,一台机器上一个,负责管理本机器上的计算资源。根据RM命令,启动Container容器、监视容器的资源使用情况。并且向RM主角色汇报资源使用情况。
  • ApplicationMaster ( AM )
    用户提交的每个应用程序均包含一个AM.
    应用程序内的“老大”,负责程序内部各阶段的资源申请,监督程序的执行情况。

YARN的三种调度策略

  • FIFO sheduler: 先进先出
    优势:无需配置,先到先得,易于执行。
    坏处:任务的优先级不会变高,因此高优先级的作业需要等待不适合共享集群。

在这里插入图片描述

  • Capacity scheduler:为每个组织分配专门的队列,然后再为每个队列分配一定的集群资源。(YARN的默认调度器)
    优势: 层次化的队列设计、容量保证、安全、弹性分配。
    坏处:不能公平的分配资源。

在这里插入图片描述

  • Fair Scheduler:公平共享资源
    **优势:**公平共享资源、资源抢先、基于用户或组的队列映射。
    在这里插入图片描述

参考: https://www.bilibili.com/video/BV1CU4y1N7Sh?p=39&spm_id_from=pageDriver

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值