美文网首页
Yarn详解

Yarn详解

作者: 吃货大米饭 | 来源:发表于2019-07-14 18:13 被阅读0次

一、调度器

YARN:是一种新的 Hadoop资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处.
ResourceManager(RM):主要接收客户端任务请求,接收和监控NodeManager(NM)的资源情况汇报,负责资源的分配与调度,启动和监控ApplicationMaster(AM)。
ApplicationManager(应用程序管理器):应用程序管理,它是负责系统中所有的job,包括job的提交与调度器协商资源来启动ApplicationMaster(AM)和监控(AM)运行状态,并且失败的时候能够重新启动它,更新分配给一个新的Container容器的进度或者状态,除了资源它不管,它就负责job.
ResourceScheduler(资源调度器):更具容量队列的限制条件将我们系统中的资源分配给正在运用的一个应用程序先进先出调度器 :一个作业运行完了,另一个才能运行.

yarn的内置调度器:
1.FIFO先进先出,一个的简单调度器,适合低负载集群。(适合任务数量不多的情况下使用)

2019-07-14_170502.png
假设job 1在零点提交了,job 2在一点提交,job 2必须等job 1完成之后才能运行。

2.Capacity调度器,给不同队列(即用户或用户组)分配一个预期最小容量,在每个队列内部用层次化的FIFO来调度多个应用程序。(适用于有很多小的任务跑,需要占很多队列,不使用队列,会造成资源的浪费)


2019-07-14_170512.png

引入了队列的概念,先分配好队列,job 1零点提交,job 2一点提交,两者同时运行,互不干扰。

3.Fair公平调度器,针对不同的应用(也可以为用户或用户组),每个应用属于一个队列,主旨是让每个应用分配的资源大体相当。(当然可以设置权重),若是只有一个应用,那集群所有资源都是他的。 适用情况:共享大集群、队列之间有较大差别。(生产使用)


2019-07-14_170519.png

map task reduce task任务完成后会释放资源,job 1 资源释放后,job 2会使用释放后的资源,job 2任务完成后释放资源,job 1接着使用job 2释放的资源,不会造成资源浪费。

从第二个任务提交到获得资源会有一定的延迟,
因为它需要等待第一个任务释放占用的Container。
小任务执行完成之后也会释放自己占用的资源,大任务又获得了全部的系统资源。
最终的效果就是Fair调度器即得到了高的资源利用率又能保证小任务及时完成。

参考地址
https://www.cnblogs.com/sodawoods-blogs/p/8877197.html
http://dongxicheng.org/mapreduce-nextgen/hadoop-yarn-configurations-fair-scheduler/

二、使用yarn运行mr的wc程序

[hadoop@Hadoop001 hadoop]$ bin/hdfs dfs -cat /expamles/input/* 
hello alvin
alvin fure
[hadoop@Hadoop001 hadoop]$ bin/yarn jar ./share/hadoop/mapreduce2/hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar wordcount /expamles/input/* /expamles/output/7
[hadoop@Hadoop001 hadoop]$ bin/hdfs dfs -cat /expamles/output/7/*
alvin   2
fure    1
hello   1
2019-07-14_175226.png

过程:
map---shuffle---->reduce
19/07/14 08:40:26 INFO mapreduce.Job: map 0% reduce 0%
19/07/14 08:40:39 INFO mapreduce.Job: map 100% reduce 0%
19/07/14 08:40:46 INFO mapreduce.Job: map 100% reduce 100%

shuffle: 洗牌
相同的key通过网络传输 拉到一起,当某个key的数据量特别大,会有数据倾斜。

Job Counters
Launched map tasks=1
Launched reduce tasks=1 默认值 控制最终输出的文件个数

换句话说我们如果在map计算前做输入分片调整,
例如合并小文件,那么就不会有5个map任务将执行,
而且每个map执行的数据大小不均,这个也是mapreduce优化计算的一个关键点。

生产:
底层是Linux 进程数 文件数 经验值最大值 65535 卡卡的感觉 load飙升
56core 256G 12T磁盘 8w块
进程数 文件数 : 960000

相关文章

  • #转#Spark核心编程进阶-yarn模式相关参数详解

    yarn模式运行spark作业所有属性详解

  • Yarn详解

    Yarn详解 1.Yarn架构设计(mr的提交到Yarn的流程) 2.调优 Memory: CPU: JVM系列:...

  • Yarn详解

    一、调度器 YARN:是一种新的 Hadoop资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理...

  • uni-app开发 yarn和npm基础

    yarn和npm基础 yarn详解 Yarn对你的代码来说是一个包管理器。它可以让你使用并分享全世界开发者的(例如...

  • Yarn~新的 map-reduce 框架

    Hadoop 新 MapReduce 框架 Yarn 详解 - zero516cn - 博客园http://www...

  • Yarn~新的 map-reduce 框架

    Hadoop 新 MapReduce 框架 Yarn 详解 - zero516cn - 博客园http://www...

  • YARN 生产详解

    前言: 上节课我们讲了 MR job的提交YARN的工作流程 与 YARN的架构,本次课程详细讲讲YARN,多多总...

  • yarn原理详解

    一、Yarn简介 Yarn是Hadoop集群的资源管理系统。Hadoop2.0对MapReduce框架做了彻底的设...

  • MapReduce/Yarn详解

    MapReduce框架结构## MapReduce是一个用于大规模数据处理的分布式计算模型MapReduce模型主...

  • Hadoop配置文件详解

    Hadoop配置文件详解 1.core-site.xml 2.hdfs-site.xml 3.yarn-site....

网友评论

      本文标题:Yarn详解

      本文链接:https://www.haomeiwen.com/subject/ilqikctx.html