第四章大数据离线计算框架(MapReduce&YARN)

第四章大数据离线计算框架(MapReduce&YARN)

  • 一、MapReduce技术原理
    • 1.1 MapReduce概述
    • 1.2 Map函数和Reduce函数
  • 二、YARN技术原理
    • 2.1 YARN的概述与应用
    • 2.2 YARN的架构
    • 2.3 MapReduce的计算过程
    • 2.4 YARN的资源调度

一、MapReduce技术原理

  • 并行的编程模型,用于大规模的数据集(TB)的并行计算。
  • Hadoop MapReduce是基于HDFS的分布式编程框架,可以使没有并行计算和分布处理系统开发经验的程序员有效利用分布式系统的丰富资源。

1.1 MapReduce概述

  • Hadoop MapReduce框架是通过java编写。但也可以使用Ruby、PHP、和c++等非java类语言编写。
  • 可用于日志分析、海量的数据排序、在海量的数据中查找特定的模式等场景。
    特点:
  • 易于编程:程序员仅需要描述做什么,具体怎么做交由系统的执行框架处理
  • 良好的扩展性
  • 高容错性:计算迁移或数据迁移等策略提供集群的可用性和容错性

1.2 Map函数和Reduce函数

进行计算任务时:会将任务初始化为一个工作(job),每个job又被分解成若干任务task,整个计算过程分为Map和Reduce两个阶段。

  • Map函数接受一个键/值对的输入,产生一个新的键值对作为中间输出。MapReduce负责将所具有相同key值的value汇总到一起传给Reduce函数。
  • Redeuce函数接受一个形式的输入,然后对这个value集合进行处理,每个Reduce产生0或1个输出

二、YARN技术原理

2.1 YARN的概述与应用

  • 定义:另一种资源协调器Yet Another Resource Negotiator,是一种新的Hadoop资源管理器,为上一层的应用提供资源管理和调度。

特点:

  • 资源利用率高
  • 运维成本低:仅需运维一个集群
  • 数据共享方便:同个集群内部部署不同的计算框架,实现了不同计算框架的数据共享

应用场景:

  • Hadoop2.0推出YARN,支持MapRedeuce以及spark、Storm等计算框架,实现“一个集群多个框架”

2.2 YARN的架构

YARN的体系结构中包含了四个组件:

  • Container:是资源抽象,封装了某个节点上一定量的多维度资源,如内存、cpu
  • ResourceManger:负责集群的统一资源管理,主要包括资源调度与应用程序管理。有两个主要组件:1.ResourceScheduler(调度器):负责根据容量、队列等限制条件、分配资源给应用程序。 2.ApplicationManger应用程序管理器:负责管理整个系统中的所有应用程序。
  • NodeManger:计算节点的代理管理Container的生命周期
  • ApplicationMaster:负责应用程序的管理工作。

2.3 MapReduce的计算过程

  1. 任务提交:客户端应用向ResourceManger请求job id,ResourceManger返回对应的job id

  2. 文件分片:job 提交前,需要将待处理的文件进行分片

  3. 资源调配:job被客户端交付给ResourceManger,ResourceManger根据算法在集群中挑选合适的NodeManger节点启动ApplicationMaster,ApplicationMaster申请资源后通知对应的NodeManger启动Container负责执行Task

  4. Map过程:MapReduce框架将一个分片和一个Map task对应,一个task只负责处理一个数据分片

  5. Shuffle阶段:

    • 分区:采用算法确定分区个数,将不同节点中的Map task结果进行划分,将具备相同key值送给相同的Reduce task处理
    • 排序:将输出记录排序
    • 组合:默认可选,合并重复并统计次数
    • 合并:将溢出文件合并处理,减少数据量
  6. Reduce过程: 从各个Map Task获取MOF文件。

2.4 YARN的资源调度

  1. 资源管理、
  • 当前YARN支持内存和CPU两种资源的管理和分配
  1. 资源分配模型
  • 采用双调度策略,先有ResourceManger将资源分配给ApplicationMaster,再由ApplicationMaster进一步把资源分配给其他应用程序的任务.
  • 异步的。

你可能感兴趣的:(大数据原理与技术,大数据,mapreduce)