Hadoop系列(八)Hadoop三大核心之Yarn-资源调度初探

目录

  • 0. Yarn的来源
  • 1. YARN概述
  • 2. YARN的重要组成部分
    • 2.1 ResourceManager
    • 2.2 NodeManager
    • 2.3 逻辑上的组件Application Master
  • 3. Container 资源池
  • 4. 小结

0. Yarn的来源

? hadoop 1.x的时代,并没有Yarn,hadoop核心组件只有HDFS和MapReduce。到了hadoop2.x才有了Yarn的诞生,组件包含HDFS,MapReduce和Yarn。

? 诞生原因:hadoop 1.x存在的最大问题就是资源管理问题。技术的发展不再满足于hadoop集群中只使用MapReduce一个计算框架,人们更希望有一套合理的管理机制,来控制集群的资源管理问题。就此Yarn诞生。

1. YARN概述

全称 Yet Another Resource Negotiator。是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而 MapReduce,spark 等运算程序可以运行在YARN上,相当于应用程序运行于操作系统之上

YARN 是 Hadoop2.x 版本中的一个新特性。它的出现是为了解决第一代 MapReduce 编程框架的不足,提高集群环境下的资源利用率,这些资源包括内存,磁盘,网络,IO等。Hadoop2.X 版本中重新设计的这个 YARN 集群,具有更好的扩展性,可用性,可靠性,向后兼容性,以及能支持除 MapReduce 以外的更多分布式计算程序

YARN的特点:

  1. YARN不清楚提交的程序的运行机制
  2. 只提供运算资源的调度,分配。用户申请就分配。
  3. 与运行的用户程序完全解耦。 YARN 上可以运行各种类型的分布式运算程序。比如 MapReduce、Storm 程序,Spark 程序等
  4. yarn 是一个通用的资源调度平台,企业中存在的各种运算集群都可以整合在一个物理集群上,提高资源利用率,方便数据共享

Yarn最大的特点是执行调度与Hadoop上运行的任务类型无关

2. YARN的重要组成部分

有两类长期运行的守护进程提供核心服务

  • ResourceManager(主节点) :全局资源管理器
  • NodeManager(从节点):节点资源管理器

主从结构如图

2.1 ResourceManager

RM组件是负责资源管理的,整个系统有且只有一个 RM ,来负责资源的调度。ResourceManager 会为每一个 Application 启动一个 ApplicationMaster, 并且 ApplicationMaster 分散在各个 NodeManager 节点

RM里面还有两个重要组成部分:

  1. 应用程序管理器 Application Manager
  2. 资源调度器 Resource Scheduler

ResourceManager名字就是这两个词合并而来

Application Manager 应用程序管理器

应用程序管理器就是负责管理 Client 用户提交的应用的管理器

主要功能:

  1. 负责接收client端传输的job请求,为应用(MapReduce 程序)分配一个Container(资源池)来运行一个Application Master
  2. 负责监控Appication Master
  3. 并且在遇到失败的时候重启Application Master

Scheduler 资源调度器

Resource Scheduler即资源调度器,是让每一个节点都充分利用起来,合理分配和调度资源的一种管理器。

值得注意的是:调度器真的只是一个调度器,不参与任何具体的和应用程序相关的工作。

2.2 NodeManager

NodeManager 是YARN集群当中真正资源的提供者,是真正执行应用程序的容器的提供者, 监控应用程序的资源使用情况(CPU,内存,硬盘,网络),并通过心跳向集群资源调度器 ResourceManager 进行汇报以更新自己的健康状态。同时其也会监督 Container 的生命周期管理,监控每个 Container 的资源使用(内存、CPU 等)情况,追踪节点健康状况,管理日 志和不同应用程序用到的附属服务(auxiliary service)。

2.3 逻辑上的组件Application Master

ApplicationMaster 就是一个java程序,进程名:MRAppMaster

作用:负责监控Map、Reduce任务。用户提交的每一个程序都会产生一个ApplicationMaster,这个AM就是负责整个任务的一个管理者,由这个 AM去向ResourceManager 申请容器资源,获得资源后会将要运行的程序发送到容器上启动,然后进行分布式计算。

主要功能:

  1. 与调度器(Scheduler)协商,获取执行资源
  2. 与NodeManager通信,启动任务和停止任务
  3. 监控所有旗下Job的执行状态,重启失败任务

3. Container 资源池

Yarn中的资源抽象,封装了多维度资源: 内存,cpu,磁盘等。Container就是Scheduler进行资源分配的一个单位,也是运行各个任务的容器。

  • 容器由 NodeManager 启动和管理,并被它所监控。
  • 容器被 ResourceManager 进行调度。

4. 小结

Yarn是Hadoop2.x之后引入的新组件。Yarn的架构采用了主从结构,一主多从(ResourceManager & NodeManager)。Yarn在Hadoop中的功能作用有两个,第一是负责Hadoop集群中的资源管理(resource management),第二是负责对任务进行调度和监控(scheduling/monitoring)。

原文地址:https://www.cnblogs.com/valjeanshaw/p/11791988.html

时间: 2024-08-07 12:04:56

Hadoop系列(八)Hadoop三大核心之Yarn-资源调度初探的相关文章

HADOOP docker(八):hadoop本地库

前言2. Native Hadoop Library3. 使用本地库4. 本地库组件5. 支持的平台6. 下载7. 编译8. 运行时观察9. 检查本地库10. 如果共享本地库 小伙伴还记得每次启动hdfs就会报can't find native libriaries吗?今天我们就来聊聊这个~ 文档:http://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-hdfs/CentralizedCacheManagement.html

安装Hadoop系列 — 导入Hadoop源码项目

将Hadoop源码导入Eclipse有个最大好处就是通过 "ctrl + shift + r" 可以快速打开Hadoop源码文件. 第一步:在Eclipse新建一个Java项目,hadoop-1.0.3 第二步:将Hadoop程序src下core, hdfs, mapred, tools几个目录copy到上述新建项目的src目录 第三步:修改将Java Build Path,删除src,添加src/core, src/hdfs....几个源码目录 第四步:为Java Build Pat

Hadoop系列(二)Hadoop三大核心之HDFS基础

目录 hdfs基础 重要概念 Hadoop 特点 Hadoop HA 针对海量数据,核心问题始终是计算和存储.当数据集的大小超过一台独立物理计算机的存储能力时,就有必要对它进行分区并存储到多台机器上.跨机器存储的文件系统就被成为分布式文件系统.分布式系统架构于网络之上,势必引入网络编程的复杂性,如何实现容忍节点故障但不丢失数据,是HDFS的重要挑战. hdfs基础 Hadoop 自带HDFS分布式文件系统:Hadoop Distributed Filesystem.也简称DFS.主要用来解决海量

hadoop系列:zookeeper(3)——zookeeper核心原理(事件)

1.概述 上一篇文章,我们对zookeeper中的数据组织结构.Leader选举原理进行了讲述(http://blog.csdn.net/yinwenjie/article/details/47613309).这篇文章我们紧接上文讲解zookeeper中的事件机制.并通过示例代码告诉读者怎么使用zookeeper中的事件通知器:watcher. 2.zookeeper中的监听机制 按照上文中的讲解,我们知道zookeeper主要是为了统一分布式系统中各个节点的工作状态,在资源冲突的情况下协调提供

hadoop系列三:mapreduce的使用(一)

转载请在页首明显处注明作者与出处 http://www.cnblogs.com/zhuxiaojie/p/7224772.html 一:说明 此为大数据系列的一些博文,有空的话会陆续更新,包含大数据的一些内容,如hadoop,spark,storm,机器学习等. 当前使用的hadoop版本为2.6.4 上一篇:hadoop系列二:HDFS文件系统的命令及JAVA客户端API 在下面可以看到统计一本小说(斗破苍穹)哪些词语出现了最多. 本来mapreducer只想写一篇的,可是发现写一篇太长了,所

大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解

引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单机的搭建,是因为作为个人学习的话,单机已足以,好吧,说实话是自己的电脑不行,使用虚拟机实在太卡了... 整个的集群搭建是在公司的测试服务搭建的,在搭建的时候遇到各种各样的坑,当然也收获颇多.在成功搭建大数据集群之后,零零散散的做了写笔记,然后重新将这些笔记整理了下来.于是就有了本篇博文. 其实我在搭

Hadoop 系列(一)基本概念

Hadoop 系列(一)基本概念 一.Hadoop 简介 Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构,它可以使用户在不了解分布式底层细节的情況下开发分布式程序,充分利用集群的威力进行高速运算和存储. 从其定义就可以发现,它解決了两大问题:大数据存储.大数据分析.也就是 Hadoop 的两大核心:HDFS 和 MapReduce. HDFS(Hadoop Distributed File System) :是可扩展.容错.高性能的分布式文件系统,异步复制,一次写入多次读

大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集

引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单机的搭建,是因为作为个人学习的话,单机已足以,好吧,说实话是自己的电脑不行,使用虚拟机实在太卡了... 整个的集群搭建是在公司的测试服务搭建的,在搭建的时候遇到各种各样的坑,当然也收获颇多.在成功搭建大数据集群之后,零零散散的做了写笔记,然后重新将这些笔记整理了下来.于是就有了本篇博文. 其实我在搭

Hadoop系列之hdfs(分布式文件系统)安装配置

Hadoop系列之hdfs(分布式文件系统)安装配置环境介绍:     ip                        节点192.168.3.10      hdfs-master192.168.3.11      hdfs-slave1192.168.3.12      hdfs-slave21.在所有机器添加hosts192.168.3.10      hdfs-master192.168.3.11      hdfs-slave1192.168.3.12      hdfs-slav

Hadoop系列教程<一>---Hadoop是什么呢?

Hadoop适合应用于大数据存储和大数据分析的应用,适合于服务器几千台到几万台的集群运行,支持PB级的存储容量.Hadoop典型应用有:搜索.日志处理.推荐系统.数据分析.视频图像分析.数据保存等.但是Hadoop的使用范围远小于SQL或Python之类的脚本语言,所以不要盲目使用Hadoop.不过作为一名钻研Java的物联网工程师,我觉得值得去学习了解,而且想和大数据打交道还没有那个没听过Hadoop的. Hadoop是使用Java编写,允许分布在集群,使用简单的编程模型的计算机大型数据集处理