IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Yarn资源管理器 -> 正文阅读

[大数据]Yarn资源管理器

1 YARN简介

为克服Hadoop 1.0中HDFS和MapReduce存在的各种问题?提出的,针对Hadoop 1.0中的MapReduce在扩展性和多框架?持??的不?,提出了全新的资源管理框架 YARN.

Apache YARN(Yet another Resource Negotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于?个分布式的操作系统平 台,?MapReduce等计算程序则相当于运?于操作系统之上的应?程序。

yarn被引?Hadoop2,最初是为了改善MapReduce的实现,但是因为具有?够的通?性,同样可以?持其他的分布式计算模式,?如Spark,Tez等计算框架。

?注意:还有?层应?是运?在MapReduce,Spark或者Tez之上的处理框架,如 Pig,Hive和Crunch等。

2 YARN的设计思想(重点)

2.1 基本思想

yarn的基本思想是将资源管理和作业调度/监视功能划分为单独的守护进程。其思想是拥有?个全局ResourceManager (RM),以及每个应?程序拥有?个 ApplicationMaster (AM)。应?程序可以是单个作业,也可以是?组作业。

?个ResourceManager和多个NodeManager构成了yarn资源管理框架。他们是 yarn启动后?期运?的守护进程,来提供核?服务。

ResourceManager,是在系统中的所有应?程序之间仲裁资源的最终权威,即管理整个 集群上的所有资源分配,内部含有?个Scheduler(资源调度器)

NodeManager,是每台机器的资源管理器,也就是单个节点的管理者,负责启动和监视 容器(container)资源使?情况,并向ResourceManager及其 Scheduler报告使?情况

container:即集群上的可使?资源,包含cpu、内存、磁盘、?络等

ApplicationMaster(简称AM)实际上是框架的特定的库,每启动?个应?程序,都会启动?个AM,它的任务是与ResourceManager协商资源,并与NodeManager?起执?和监视任务

扩展)YARN与MapReduce1的?较

??2.2 Yarn的配置

yarn属于hadoop的?个组件,不需要再单独安装程序,hadoop中已经存在配置?件的设置,本身就是?个集群,有主节点和从节点。

注意:<value></value>之间的值不能有空格

在mapred-site.xml中的配置如下:

<!--?于执?MapReduce作业的运?时框架-->
<property>
 <name>mapreduce.framework.name</name>
 <value>yarn</value>
</property>
<!--历史任务的内部通讯地址-->
<property>
 <name>MapReduce.jobhistory.address</name>
 <value>qianfeng01:10020</value>
</property>
<!--历史任务的外部监听??-->
<property>
 <name>MapReduce.jobhistory.webapp.address</name>
 <value>qianfeng01:19888</value>
</property>

在 yarn-site.xml中的配置如下:

<!--配置resourcemanager的主机-->
<property>
 <name>yarn.resourcemanager.hostname</name>
 <value>qianfeng01</value>
</property>
<!--配置yarn的shuffle服务-->
<property>
 <name>yarn.nodemanager.aux-services</name>
 <value>mapreduce_shuffle</value>
</property>
<!--指定shuffle对应的类 -->
<property>
 <name>yarn.nodemanager.auxservices.MapReduce_shuffle.class</name>
 <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<!--配置resourcemanager的scheduler的内部通讯地址-->
<property>
 <name>yarn.resourcemanager.scheduler.address</name>
 <value>qianfeng01:8030</value>
</property>
<!--配置resoucemanager的资源调度的内部通讯地址-->
<property>
 <name>yarn.resourcemanager.resource-tracker.address</name>
 <value>qianfeng01:8031</value>
</property>
<!--配置resourcemanager的内部通讯地址-->
<property>
 <name>yarn.resourcemanager.address</name>
<value>qianfeng01:8032</value>
</property>
<!--配置resourcemanager的管理员的内部通讯地址-->
<property>
 <name>yarn.resourcemanager.admin.address</name>
 <value>qianfeng01:8033</value>
</property>
<!--配置resourcemanager的web ui 的监控??-->
<property>
 <name>yarn.resourcemanager.webapp.address</name>
 <value>qianfeng01:8088</value>
</property>

1)启动服务

-1. 启动historyserver,可以访问http://qianfeng01:19888

mr-jobhistory-daemon.sh start historyserver

-2. 启动resourcemanager 监控 http://master:8088

start-yarn.sh

start-all.sh

2) ?志位置

jps:当启动进程时出错了解决步骤:可以查看?志

如果是hdfs上的问题,则查看对应的?志

less 或 tail -1000 $HADOOP_HOME/logs/hadoop-{user.name}- {jobname}-{hostname}.log

如果是yarn,则查看

less 或tail -1000 $HADOOP_HOME/logs/yarn-{user.name}- {jobname}-{hostname}.log

2.3. YARN的Job提交

在MR程序运?时,有五个独?的进程:

- YarnRunner:?于提交作业的客户端程序

- ResourceManager:yarn资源管理器,负责协调集群上计算机资源的分配

- NodeManager:yarn节点管理器,负责启动和监视集群中机器上的计算容器 (container)

- Application Master:负责协调运?MapReduce作业的任务,他和任务都在容器中运?,这些容器由资源管理器分配并由节点管理器进?管理。

- HDFS:?于共享作业所需?件。

整个过程如下图描述:

?1. 调?waitForCompletion?法每秒轮询作业的进度,内部封装了submit()?法,?于创建JobCommiter实例,并且调?其的submitJobInternal?法。提交成功后,如果有状态改变,就会把进度报告到控制台。错误也会报告到控制台

2. JobCommiter实例会向ResourceManager申请?个新应?ID,?于MapReduce 作业ID。这期间JobCommiter也会进?检查输出路径的情况,以及计算输?分?。

3. 如果成功申请到ID,就会将运?作业所需要的资源(包括作业jar?件,配置?件和计算所得的输?分?元数据?件)上传到?个?ID命名的?录下的HDFS上。此时副本个数默认是10.

4. 准备?作已经做好,再通知ResourceManager调?submitApplication?法提交作业。

5. ResourceManager调?submitApplication?法后,会通知Yarn调度器 (Scheduler),调度器分配?个容器,在节点管理器的管理下在容器中启动 application master进程。

6. application master的主类是MRAppMaster,其主要作?是初始化任务,并接 受来?任务的进度和完成报告。

7. 然后从HDFS上接受资源,主要是split。然后为每?个split创建MapTask以及参数指定的ReduceTask,任务ID在此时分配

8. 然后Application Master会向资源管理器请求容器,?先为MapTask申请容 器,然后再为ReduceTask申请容器。(5%)

9. ?旦ResourceManager中的调度器(Scheduler),为Task分配了?个特定节点上的容器,Application Master就会与NodeManager进?通信来启动容器。

10. 运?任务是由YarnChild来执?的,运?任务前,先将资源本地化(jar?件,配置?件,缓存?件)

11. 然后开始运?MapTask或ReduceTask。

12. 当收到最后?个任务已经完成的通知后,application master会把作业状态设置为success。然后Job轮询时,知道成功完成,就会通知客户端,并把统计信息输出到控制台

2.4. YARN的三种调度器

2.4.1 什么是Scheduler(调度器)

Scheduler即调度器,根据容量、队列等限制条件(如每个队列分配?定的资源,最多执??定数量的作业等),将系统中的资源分配给各个正在运?的应?程序。

2.4.2 YARN提供的三种内置调度器:

1) FIFO Scheduler(FIFO调度器)

FIFO 为 First Input First Output 的缩写,先进先出。FIFO 调度器将应?放 在?个队列中,按照先 后顺序 运?应?。

这种策略较为简单,但不适合共享集群,因为?的应?会占?集群的所有资 源,每个应?必须等待直到轮到??。

优点:简单易懂,不需要任何配置

缺点:不适合共享集群,?的应?会占据集群中的所有资源,所以每个应?都必须等待, 直到轮到??执?。

如下图所示,只有当job1全部执?完毕,才能开始执?job2

?2) Capacity Scheduler(容量调度器)

容量调度器 Capacity Scheduler 允许多个组织共享?个 Hadoop 集群。使?容量调度器时,?个独?的专?队列保证?作业?提交就可以启动。

优点:?任务不会因为前?有?任务在执?,?只能?直等下去

缺点:这种策略是以整个集群利?率为代价的,这意味着与使?FIFO调度器相?,?作业执?的时间要?上?些。

?如图所示,专?留了?部分资源给?任务,可以在执?job1的同时,不会阻塞job2的执?,但是因为这部分资源是?直保留给其他任务的,所以就算只有?个任务,也?法为其分配全部资源,只能让这部分保留资源闲置着,有着?定的资源浪费问题。

3) Fair Scheduler(公平调度器):

公平调度器的?的就是为所有运?的应?公平分配资源。使?公平调度器时,不需要预留?定量的资源,因为调度器会在所有运?的作业之间动态平衡资源,第?个(?)作业启动时,它也是唯?运?的作 业,因?获得集群中的所有 资源,当第?个(?)作业启动时,它被分配到集群的?半资源,这样每个作业都能公平共享资源。

?

?如图所示,就像是把好?个任务拼接成了?个任务,可以充分利?资源,同时?不会因为?任务在前?执??导致?任务?直?法完成。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-11 16:42:24  更:2021-07-11 16:42:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/7 4:08:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码