美文网首页
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

    相关文章

      网友评论

          本文标题:Yarn详解

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