`

YARN/MRv2 中基本术语介绍

 
阅读更多

YARN/MRv2是下一代MapReduce框架(见Hadoop-0.23.0),该框架完全不同于当前的MapReduce框架,它在扩展性,容错性和通用性等方面更出色,据统计,Yarn有超过150000行代码,完全是重写编写的。本文介绍了YARN/MRv2中基本术语的含义,帮助有兴趣的程序员们对YARN有一个初步的理解。

 

(1) YARN

下一代MapReduce框架的名称,为了容易记忆,一般称为MRv2(MapReduce version 2)。该框架已经不再是一个传统的MapReduce框架,甚至与MapReduce无关,她是一个通用的运行时框架,用户可以编写自己的计算框架,在该 运行环境中运行。用于自己编写的框架作为客户端的一个lib,在运用提交作业时打包即可。该框架为提供了以下几个组件:

<1> 资源管理:包括应用程序管理和机器资源管理

<2> 资源双层调度

<3> 容错性:各个组件均有考虑容错性

<4> 扩展性:可扩展到上万个节点

当前比较有名的计算框架有:

MapReduce:google提出的计算框架,在互联网大规模数据处理方面使用广泛,但它存在缺点,如:不支持DAG作业,迭代式作业等。

Apache Giraph:图算法处理框架,采用BSP模型(bulk-synchronous parallel model),可用于计算pagerank,shared connections, personalization-based popularity等迭代类算法。

Apache HAMA:基于BSP模型的分布式计算框架,可用于大规模科学计算,如矩阵,图算法,网络算法等,受Google’s Pregel启发,但又有所不同,HAMA是个更加通用的框架,不仅仅支持图算法。

Open MPI: 这是一个高性能计算函数库,通常在HPC(High Performance Computing)中采用,与MapReduce相比,其性能更高,用户可控性更强,但编程复杂,容错性差,可以说,各有所长,在实际应用中,针对不同 该应用会采用MPI或者MapReduce。

HBase :Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,仿照Google Bigtable实现的,近几年逐步的流行,慢慢取代Cassandra了(在Hadoop In China2011上,FaceBook工程师说他们早就放弃Cassandra而改用HBase)。

以上这几个框架各有所长,在一些互联网公司中均会采用,如果分别部署安装这些计算框架过于繁琐,有了YARN后,这些计算框架可统一在YARN环境中部署。目前仅有MapReduce可使用,其他几个在陆续开发中,具体可参考:

(2) ResourceManager

简称“RM”。

MRv2最基本的设计思想是将JobTracker的两个主要功能,即资源管理和作业调度/监控分成两个独立的进程。在该解决方案中包含两个组件: 全局的ResourceManager(RM)和与每个应用相关的ApplicationMaster(AM)。这里的“应用”指一个单独的 MapReduce作业或者DAG作业。RM和与NodeManager(NM,每个节点一个)共同组成整个数据计算框架。RM是系统中将资源分配给各个 应用的最终决策者。AM实际上是一个具体的框架库,它的任务是【与RM协商获取应用所需资源】和【与NM合作,以完成执行和监控task的任务】。

RM有两个组件组成:

调度器(Scheduler)

应用管理器(ApplicationsManager,ASM)

调度器根据容量,队列等限制条件(如每个队列分配一定的资源,最多执行一定数量的作业等),将系统中的资源分配给各个正在运行的应用。这里的调度器 是一个“纯调度器”,因为它不再负责监控或者跟踪应用的执行状态等,此外,他也不负责重新启动因应用执行失败或者硬件故障而产生的失败任务。调度器仅根据 各个应用的资源需求进行调度,这是通过抽象概念“资源容器”完成的,资源容器(Resource Container)将内存,CPU,磁盘,网络等资源封装在一起,从而限定每个任务使用的资源量。

调度器内嵌有策略可插拔的插件,主要负责将集群中得资源分配给多个队列和应用。当前MapReduce的调度器,如Capacity Scheduler和Fair Scheduler,均可作为该插件。

(3)NodeManager

简称“NM”。

NM是每个节点上的框架代理,主要负责启动应用所需的容器,监控资源(内存,CPU,磁盘,网络等)的使用情况并将之汇报给调度器。

一句话:“NM主要用于管理某个节点上的task和资源”。

(4)ApplicationsManager

简称“ASM”。

ASM主要负责接收作业,协商获取第一个容器用于执行AM和提供重启失败AM container的服务。

一句话:“ASM主要用于管理AM”。

(5)ApplicationMaster

简称“AM”。

AM主要负责同调度器协商以获取合适的容器,并跟踪这些容器的状态和监控其进度。

一句话:“AM主要用于管理其对应的应用程序,如MapReduce作业,DAG作业等”。

(6) Container

 

容器中封装了机器资源,如内存,CPU, 磁盘,网络等,每个任务会被分配一个容器,该任务只能在该容器中执行,并使用该容器封装的资源。

分享到:
评论

相关推荐

    YARN(MRv2)搭建

    YARN(MRv2)搭建

    yarn-v0.23.2.tar.gz

    yarn-v0.23.2.tar.gz 在安装ambari,源码编译的时候下载的文件有问题 手动下载 地址 https://github.com/yarnpkg/yarn/releases/download/v0.23.2/yarn-v0.23.2.tar.gz

    【自动化脚本】自动启动hdfs/yarn/spark HA集群

    脚本使用:vim编辑脚本,按照自己的配置修改主机号,我的是hadoop1、2是NN;hadoop2、3是Spark Master;hadoop3还是RM;hadoop4、5、6是DN、NM、Spark Worker。编辑完成后在满足“前提”的任意一台主机运行均可。 ...

    yarn-v1.22.5.tar.gz

    2. **锁定文件**:Yarn 使用 `yarn.lock` 文件来确保所有开发者的环境中安装的包版本一致,解决了 npm 的版本漂移问题,提高了项目的可预测性和可重复性。 3. **并行下载**:Yarn 能够并行下载依赖包,显著提升了...

    Flink on Yarn_K8S原理剖析及实践.pdf

    阿里大牛在技术分享中,向用户展示了如何在YARN/K8S环境中部署和管理Flink集群,以及如何通过集成来提高作业的执行效率和资源利用率。此外,阿里云Flink官方提供的在线教程和文档,也是学习和实践Flink on YARN/K8S...

    YARN.Essentials

    该文档详细介绍了YARN的核心设计思想、架构组成、安装步骤、生态系统集成以及在集群中的管理与维护。以下是文档所涉及知识点的详细介绍: 1. YARN的需求与重设计理念 文档从Hadoop 1.x版本或传统MapReduce的局限性...

    yarn基本运作流程

    本文将详细介绍YARN的基本运作流程,帮助读者理解YARN各组件如何协同工作来完成一个作业的执行。 #### 二、YARN架构概览 YARN主要包括以下几个核心组件: 1. **ResourceManager (RM)**:集群中的中心管理器,负责...

    Hadoop YARN 基本架构和发展趋势 - d.pdf

    Hadoop YARN(Yet Another Resource Negotiator)是Apache Hadoop项目中的一个核心组件,它的设计目标是解决早期Hadoop 1.x版本中MapReduce(MRv1)存在的问题,包括扩展性限制、单点故障以及对其他计算框架支持不足...

    YARN Essentials.PDF

    通过以上内容的详细介绍,我们可以了解到 YARN 在 Hadoop 生态系统中的核心地位以及其实现资源高效利用的技术细节。无论是对于 Hadoop 的新手还是经验丰富的数据工程师而言,深入理解 YARN 的工作原理都是非常必要的...

    使用yarn create umi安装Ant Design Pro时报错TypeError: self.env.emit is not a function

    TypeError: self.env.emit is not a function at /usr/local/share/.config/yarn/global/node_modules/yeoman-generator/lib/index.js:653:22 at processTicksAndRejections (internal/process/task_queues.js:97:5)...

    HadoopYARN权威指南【中、英文版】

    书中详细介绍了YARN的架构,包括RM、NM和AM的角色和交互,以及它们如何协同工作来处理应用程序的提交、资源申请、任务执行和状态更新。此外,还涵盖了Container的概念,它是YARN中资源分配的基本单位,包含内存、CPU...

    Hadoop的yarn详解

    在本书中,作者深入解析了YARN的设计理念与基本架构,并对YARN的核心设计、计算框架及高级主题进行了详细的探讨。在准备篇中,作者指导如何搭建学习环境、获取和阅读Hadoop源代码,以及如何编译和调试源代码。在核心...

    Yarn获取Application列表编码

    获取 Application 列表编码是 Yarn 中的一种常见操作,本文将对其进行详细的分析和介绍。 Yarn 获取 Application 列表编码概述 Yarn 获取 Application 列表编码是指通过 Yarn 客户端 API 获取当前 Hadoop 集群中的...

    yarn-workspace-plugin-since

    在深入探讨这个插件之前,我们首先需要理解Yarn工作区的基本概念。 Yarn工作区是Yarn包管理器的一个特性,允许在一个大的项目中管理多个相互依赖的子项目或库。它通过在根目录创建一个`package.json`文件,并在其中...

    SPARK2_ON_YARN-2.4.0.cloudera2.jar

    SPARK2_ON_YARN-2.4.0 jar包下载

    Hadoop Reduce Join及基于MRV2 API 重写

    标题 "Hadoop Reduce Join及基于MRV2 API 重写" 涉及到的是大数据处理框架Hadoop中的一个重要操作,即数据连接(Join)。在Hadoop MapReduce中,Reduce Join是一种实现大规模数据集间连接的高效方法。本文将探讨...

    yarn 前端打包工具指定配置文件

    本文将详细介绍如何在 `Yarn` 中指定配置文件进行前端打包。 首先,了解 `Yarn` 的工作原理。`Yarn` 遵循 `npm` 的包管理和工作流程,但它的优势在于缓存策略和锁定文件(`yarn.lock`),确保在不同环境下有相同...

    yarn 1.6 WIN安装文件

    本指南将详细介绍如何在Windows操作系统上安装Yarn 1.6版本。 1. **了解Yarn** Yarn是Facebook、Google、Expo和IBM等公司共同开发的产物,它的主要目标是解决npm(Node Package Manager)在大型项目中的性能问题。...

    yarn-1.22.4.msi和yarn-1.22.5.msi

    在前端开发中,Yarn的主要作用是管理项目依赖,确保所有开发者在同一环境中使用相同版本的库和框架,从而避免版本冲突。通过执行"yarn install"命令,Yarn会根据项目根目录下的package.json文件中的依赖列表下载并...

    yarn-v1.19.1.tar.gz

    Yarn是JavaScript的世界中一个流行的包管理工具,它在2016年由Facebook推出,旨在解决npm(Node Package Manager)的一些性能和可预测性问题。`yarn-v1.19.1.tar.gz`是一个包含Yarn源码的压缩包,版本号为1.19.1。这...

Global site tag (gtag.js) - Google Analytics