Hadoop框架之Yarn相关原理

Yarn是Hadoop框架的重要部分,负责资源管理和任务调度。它通过Container和三种调度策略(FIFO、Capacity、Fair)优化资源使用,支持多任务并发执行和适应不同应用模型,提升集群效率和扩展性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

前言

一、Yarn简介

二、Yarn架构介绍

三、Yarn调度job的流程

四、Yarn的三大调度策略

总结


前言

什么是资源?

   计算机硬件环境, 例如: CPU, 内存, 磁盘等...

什么是资源调度?

   指的是当系统繁忙的时候, 如果有多个程序申请分配资源等, 如何进行资源划分, 分配, 如何最大化实现资源利用率, 就是资源调度做的事儿.
    简单来说: 资源调度就是提高资源利用率的, 核心是: 调度策略, 调度算法.


一、Yarn简介

        Yarn属于Hadoop组件的一部分, 是: 大数据分布式任务接收 和 资源调度器. 负责资源接收 和 任务调度的.
        细节: Yarn负责计算任务的资源调度, 至于是什么计算任务(例如: MR任务, Spark任务, Flink任务), Yarn根本不关心, 只要符合Yarn规范即可.

二、Yarn架构介绍

        ResourceManager:      
            1. 负责管理整个Yarn集群(的资源).
            2. 负责任务的接收.
            3. 负责资源的调度.
        NodeManager: 
            1. 负责管理本机的资源,用Container资源容器的方式管理(类似于: 圈地, 开房间, 集装箱).
            2. 负责具体任务的执行.
        AppMaster:   
            1个计算任务 = 1个AppMaster进程(Application Master, 应用程序管理者)
            由该AppMaster进程来管理该计算任务, 包括该计算任务的监控, 协调, 申请资源等 一系列操作.

三、Yarn调度job的流程

    1. 客户端请求ResourceManager节点, 执行具体的计算任务.
    2. ResourceManager接收到客户端请求后, 会找一台机器(nodemanager)创建1个AppMaster进程, 负责管理该具体的计算任务.
    3. AppMaster进程 要和 ResourceManager建立心跳机制, 并通过心跳包的方式, 获取该计算任务的具体信息.
    4. AppMaster进程 找 ResourceManager申请执行该计算任务的所需资源, 如果不能分配所有, 则至少获取执行MapTask任务所需资源, 否则就一直申请.
    5. ResourceManager会找一些nodemanager, 在其中创建Container资源容器, 给该计算任务执行用.
    6. AppMaster会连接到这些资源容器所在的nodemanager, 从而找到这些资源容器(Container)
    7. 在资源容器中执行具体的计算任务即可, 整个过程由AppMaster进程来监控 和 管理, 如需资源, AppMaster会继续向ResourceManager申请. 并获取该计算任务的执行结果.
    8. MR任务执行结束后, AppMaster进程会将该计算任务的结果返回给ResourceManager, 并告知其可以回收该计算任务的Container资源容器了.然后AppMaster进程会启动自毁程序, 至此, Yarn执行流程结束.

四、Yarn的三大调度策略

FIFO Scheduler: 先进先出调度器, 这种方式现在几乎已经不用了.
        优点:
            每个计算任务, 可以独占集群100%资源.
        缺点:
            1. 单线程的方式执行的, 如果前边阻塞了, 后续计算任务都需等待.
            2. 无法并行同时执行多个计算任务.
            3. 如果小任务前有大量的大任务, 则这个小任务需要等待大任务执行完毕后, 才能执行.
Capacity Scheduler:     容量调度器, 社区版Hadoop(Apache Hadoop)版默认的
        优点:
            1. 可以多线程, 并行的执行多个计算任务.
            2. 允许资源借调.
        缺点:
            1. 可能存在资源无法归还的情况.
            2. 可能存在无法利用所有资源的情况, 即: 资源浪费.

 Fair Scheduler:         公平调度器, 商业版(Cloudera Hadoop)默认的.
        优点:
            1. 根据情况, 自动分配资源, 实现资源最大化利用.
               即: 假设只有1个计算任务, 它会独占100%, 当又来1个计算任务, 它会分区一半的资源, 给到这个计算任务, 公平调度.
            2. 可以多线程, 并行的执行多个计算任务.
        缺点:
            如果小任务过多, 可能出现大任务迟迟无法执行结束的情况.


总结

Hadoop框架中的Yarn(Yet Another Resource Negotiator)是用于集群资源管理和作业调度的核心组件。它的主要功能包括以下几个方面:

  1. 资源管理:Yarn负责整个Hadoop集群的资源管理,包括内存、CPU等资源的分配与调度。它能够有效地管理集群中的资源,以便多个应用程序可以共享集群资源而不会相互干扰。

  2. 作业调度:Yarn可以对提交的作业进行调度,确保作业能够按照合适的顺序和优先级执行,以提高整个集群的利用率和作业的执行效率。

  3. 容器化任务执行:Yarn引入了容器的概念,每个应用程序可以申请一个或多个容器来运行其任务,这样可以更好地隔离不同应用程序的计算任务,提高集群的安全性和稳定性。

  4. 支持多种应用模型:Yarn设计之初就考虑到了多种应用程序模型的支持,比如传统的MapReduce作业、Apache Spark、Flink等新兴的大数据处理框架,使得Hadoop集群可以更加灵活地应对不同类型的计算需求。

  5. 横向扩展性:通过Yarn,Hadoop集群可以很容易地进行横向扩展,增加更多的计算节点,以满足不断增长的数据处理需求。

总的来说,Yarn作为Hadoop框架的核心组件,在实现集群资源管理和作业调度方面发挥着关键作用,使得Hadoop集群可以更高效地运行各种计算任务,并且具备良好的可扩展性和灵活性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值