YARN是分布式资源管理,每一台机器都要去管理该台计算机的资源,Yarn负责为MapReduce程序分配运算硬件资源。每一台机器的管理者叫 NodeManager,整个集群的管理者管理着整个集群的NodeManager,叫 ResourceManager。资源调度和资源隔离是YARN作为一个资源管理系统最重要和最基础的两个功能。资源调度由 ResourceManager 完成,而资源隔离由各个DataNode实现。

YARN架构图,来源于官网:http://hadoop.apache.org/docs/r2.6.5/hadoop-yarn/hadoop-yarn-site/YARN.html

当客户端提交任务给 ResourceManager, YARN会为每个在YARN上面运行的任务生成一个应用管理者(Application Mater),Application Master根据MapReduce所需要的资源向ResourceManager申请资源,该任务在ResourceManager分配好的资源容器(container)里面运行,该资源容器在NodeManager上。

ResourceManager:处理客户端请求;启动/监控ApplicationMaster;监控NodeManager;资源分配与调度

ApplicationMaster:数据切分;为应用程序申请资源,并分配给内部任务;任务监控与容错

NodeManager:单个节点上的资源管理;处理来自ResourceManager的命令;处理来自ApplicationMaster的命令

Container:对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息

MapReduce如何在YARN上运行

1,客户端(client)向ResourceManager提交一个应用程序任务。ResourceManager主要有两个组件:Scheduler(资源调度)和ApplicationsManager(应用管理)

2,ResourManager接收到client提交的任务(Task)后,需要为该应用创建一个应用管理者(ApplicationMaster)。ApplicationsManager负责接受作业(Task)提交,协商第一个容器来执行特定于应用程序的ApplicationMaster,并提供重新启动ApplicationMaster容器的服务。ResouManager找到一台NodeManager节点,创建一个ApplicationMaster

3,ApplicationMaster 对任务进行划分,确定需要多少资源,向 ApplicationsManager 注册已经生成 ApplicationMaster,并为任务申请资源。

4,Scheduler(资源调度)负责根据容量,队列等的熟悉限制向各种运行的应用程序分配资源。调度程序是纯调度器,它不执行监视或跟踪应用程序的状态。ResourcManager向ApplicationMaster 返回的资源就是用Container表示的.

5,ApplicationMaster 取得任务需要的资源信息后,向分配到的资源相关NodeManager分配任务。

6,各NodeManager接受到 ApplicationMaster 的命令后,NodeManager在他们的容器中启动Map Task / Reduce Task

7,每个Task都要向ApplicationMaster 报告进度状况,每个应用程序ApplicationMaster有责任从调度程序协商适当的资源容器,跟踪其状态并监视进度。

8,所有任务完成后,ApplicationMaster 向  ApplicationsManager 汇报完成任务。

客户端(client)可以通过页面监控任务进度(8088端口)

yarn的配置文件yarn-site.xml上需要根据你的实际情况更改属性参数,yarn的一些默认值如

name value description
yarn.nodemanager.resource.memory-mb 8192 Amount of physical memory, in MB, that can be allocated for containers.
yarn.nodemanager.pmem-check-enabled true Whether physical memory limits will be enforced for containers.
yarn.nodemanager.vmem-check-enabled true Whether virtual memory limits will be enforced for containers.
yarn.nodemanager.vmem-pmem-ratio 2.1 Ratio between virtual memory to physical memory when setting memory limits for containers. Container allocations are expressed in terms of physical memory, and virtual memory usage is allowed to exceed this allocation by this ratio.
yarn.nodemanager.resource.cpu-vcores 8 Number of vcores that can be allocated for containers. This is used by the RM scheduler when allocating resources for containers. This is not used to limit the number of physical cores used by YARN containers.

如果你的机器的性能没有默认的大的话请根据实际的修改掉value值,就是节点资源不够的话需要适当减小这个值,而yarn不会只能的探测节点的物理内存总量。

拓展:yarn上面的日志聚集功能配置使用:

<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-check-interval-seconds</name>
<value></value>
</property>

历史服务器historyserver

查看已经运行完成的MapReduce作业记录,比如用了多少个Map,用了多少个Reduce,作业提交时间,作业启动时间,作业完成时间等信息。

启动命令:sbin/mr-jobhistory-daemon.sh start historyserver.

Web Ui: http://hostname:19888/

停止:sbin/mr-jobhistory-daemon.sh stop historyserver.

Hadoop- 分布式资源管理YARN架构讲解的更多相关文章

  1. Hadoop 分布式文件系统:架构和设计

    引言 Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统.它和现有的分布式文件系统有很多共同点.但同时,它和其他的分布式文件系统 ...

  2. 【官方文档】Hadoop分布式文件系统:架构和设计

    http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_design.html 引言 前提和设计目标 硬件错误 流式数据访问 大规模数据集 简单的一致性模型 “移动计 ...

  3. Hadoop分布式文件系统:架构和设计

    原文地址:http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_design.html 引言 前提和设计目标 硬件错误 流式数据访问 大规模数据集 简单的一致性模型 ...

  4. Hadoop分布式资源管理器Yarn、MR运行机制剖析

    介绍YARN组件的功能及应用场景 1.ResourceManager(RM) RM是一个全局的资源管理器,集群中只有一个.它负责整个Hadoop系统的资源管理和分配,包括处理客户端请求.启动监控 Ap ...

  5. 06_Hadoop分布式文件系统HDFS架构讲解

    mr  计算框架 假如有三台机器 统领者master 01  02  03  每台机器都有过滤的应用程序 移动数据 01机== 300M  >mr 移动计算  java程序传递给各个机器(mr) ...

  6. Hadoop分布式文件系统:架构和设计要点

    原文:http://hadoop.apache.org/core/docs/current/hdfs_design.html 一.前提和设计目标 1.硬件错误是常态,而非异常情况, HDFS可能是有成 ...

  7. 基于Hadoop分布式集群YARN模式下的TensorFlowOnSpark平台搭建

    1. 介绍 在过去几年中,神经网络已经有了很壮观的进展,现在他们几乎已经是图像识别和自动翻译领域中最强者[1].为了从海量数据中获得洞察力,需要部署分布式深度学习.现有的DL框架通常需要为深度学习设置 ...

  8. Hadoop+Hbase分布式集群架构“完全篇”

    本文收录在Linux运维企业架构实战系列 前言:本篇博客是博主踩过无数坑,反复查阅资料,一步步搭建,操作完成后整理的个人心得,分享给大家~~~ 1.认识Hadoop和Hbase 1.1 hadoop简 ...

  9. 项目十八-Hadoop+Hbase分布式集群架构“完全篇”

    本文收录在Linux运维企业架构实战系列 前言:本篇博客是博主踩过无数坑,反复查阅资料,一步步搭建,操作完成后整理的个人心得,分享给大家~~~ 1.认识Hadoop和Hbase 1.1 hadoop简 ...

随机推荐

  1. UVA12096 - The SetStack Computer(set + map映射)

    UVA12096 - The SetStack Computer(set + map映射) 题目链接 题目大意:有五个动作: push : 把一个空集合{}放到栈顶. dup : 把栈顶的集合取出来, ...

  2. js:argument

    引用:http://www.cnblogs.com/lwbqqyumidi/archive/2012/12/03/2799833.html    http://www.cnblogs.com/Fskj ...

  3. 使用robotframework常见的几个问题

    问题1:用rf运行IEdriver的速度好慢,比如在输入框输入用户名,一秒输入一个字符.你们的是不是这样子的?.如果是chromedriver就很快 解决办法:把IEDriver从64位换成32位 , ...

  4. Struts2学习七----------Struts2后缀

    © 版权声明:本文为博主原创文章,转载请注明出处 Struts2后缀 - Struts2默认后缀是action - Struts2使用默认后缀时*.action和*都是同一个请求 - Struts2自 ...

  5. 以使用QSqlQuery向数据库中插入数据为例,做一个小结

    背景: 最近在使用Qt+SQLite写一个本地数据库管理程序(使用者不懂SQL),在写向数据库中插入数据的 相关的函数时,我遇到了几个问题(暂时就这些): 1.向指定字段插入指定数据时,读取到的数据都 ...

  6. 安装 r 里的 igraph 报错

    转载来源:http://genek.tv/article/40 1186 0 0 安装 r 里的 igraph 报错: foreign-graphml.c: In function ‘igraph_w ...

  7. Android API Guides---Supporting Tablets and Handsets

    在Android平台上的各种屏幕尺寸的执行和系统调整大小正常应用程序的用户界面.以适应每一个人. 通常情况下,你须要做的是设计你的UI是灵活的,并通过提供替代资源(如又一次定位的一些看法观点或替代尺寸 ...

  8. 【PyCharm编辑器】之无法导入引用手动新建的包或类,报:This inspection detects names that should resolve but don't. Due to dynamic dispatch and duck typing, this is possible in a limited but useful number of cases.

    一.现象描述 如下图所示,手动新建个类包calculator.py,想在test.py文件引用它,发现一直报红线,引用失败 Unresolved reference 'calculator' less ...

  9. 【Python】用Python打开IE、谷歌等浏览器报错及解决办法

    以IE浏览器为例: 当Python Shell输入下面代码时: >>> # coding=utf-8 >>> from selenium import webdri ...

  10. pycharm 5 注册码

    BIG3CLIK6F-eyJsaWNlbnNlSWQiOiJCSUczQ0xJSzZGIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiI ...