
深入浅出Yarn架构与实现
文章平均质量分 88
深入浅出Yarn架构与实现
大数据王小皮
Stay Hungry, Stay Foolish.
展开
-
【深入浅出 Yarn 架构与实现】6-4 Container 生命周期源码分析
本文将深入探讨 AM 向 RM 申请并获得 Container 资源后,在 NM 节点上如何启动和清理 Container。将详细分析整个过程的源码实现。原创 2023-05-15 19:41:43 · 805 阅读 · 1 评论 -
【深入浅出 Yarn 架构与实现】6-3 NodeManager 分布式缓存
不要跳过这部分知识,对了解 NodeManager 本地目录结构,和熟悉 Container 启动流程有帮助。原创 2023-05-08 20:08:56 · 780 阅读 · 0 评论 -
【深入浅出 Yarn 架构与实现】6-2 NodeManager 状态机管理
NodeManager(NM)中的状态机分为三类:Application、Container 和 LocalizedResource,它们均直接或者间接参与维护一个应用程序的生命周期。原创 2023-04-03 20:09:49 · 483 阅读 · 0 评论 -
【深入浅出 Yarn 架构与实现】6-1 NodeManager 功能概述
本节开始将对 Yarn 中的 NodeManager 服务进行剖析。NodeManager 需要在每个计算节点上运行,与 ResourceManager 和 ApplicationMaster 进行交互。管理节点的计算资源以及调度容器。后续将对 NM 的功能职责、状态机、容器生命周期和资源隔离等方面进行讲解。本篇将从整体上对 NM 进行介绍。原创 2023-03-31 18:18:27 · 876 阅读 · 0 评论 -
【深入浅出 Yarn 架构与实现】5-3 Yarn 调度器资源抢占模型
本篇将对 Yarn 调度器中的资源抢占方式进行探究。分析当集群资源不足时,占用量资源少的队列,是如何从其他队列中抢夺资源的。我们将深入源码,一步步分析抢夺资源的具体逻辑。原创 2023-03-27 20:28:02 · 814 阅读 · 0 评论 -
【深入浅出 Yarn 架构与实现】5-2 Yarn 三种调度器
本篇文章将深入介绍 Yarn 三种调度器。Yarn 本身作为资源管理和调度服务,其中的资源调度模块更是重中之重。下面将介绍 Yarn 中实现的调度器功能,以及内部执行逻辑。原创 2023-03-23 19:39:44 · 496 阅读 · 0 评论 -
【深入浅出 Yarn 架构与实现】5-1 Yarn 资源调度器基本框架
资源调度器是 YARN 中最核心的组件之一,它是 ResourceManager 中的一个插拔式服务组件,负责整个集群资源的管理和分配。Yarn 默认提供了三种可用资源调度器,分别是FIFO (First In First Out )、 Yahoo! 的 Capacity Scheduler 和 Facebook 的 Fair Scheduler。 本节会重点介绍资源调度器的基本框架,在之后文章中详细介绍 Capacity Scheduler 和 Fair Scheduler。原创 2023-03-21 18:55:28 · 690 阅读 · 0 评论 -
【深入浅出 Yarn 架构与实现】4-6 RM 行为探究 - 申请与分配 Container
本小节介绍应用程序的 ApplicationMaster 在 NodeManager 成功启动并向 ResourceManager 注册后,向 ResourceManager 请求资源(Container)到获取到资源的整个过程,以及 ResourceManager 内部涉及的主要工作流程。原创 2023-03-01 20:12:01 · 443 阅读 · 0 评论 -
【深入浅出 Yarn 架构与实现】4-5 RM 行为探究 - 启动 ApplicationMaster
本节开始,将对 ResourceManager 中一些常见行为进行分析探究,看某些具体关键的行为,在 RM 中是如何流转的。本节将深入源码探究「启动 ApplicationMaster」的具体流程。原创 2023-02-28 20:37:35 · 389 阅读 · 0 评论 -
【深入浅出 Yarn 架构与实现】4-4 RM 管理 Application
在 YARN 中,Application 是指应用程序,它可能启动多个运行实例,每个运行实例由 —个 ApplicationMaster 与一组该 ApplicationMaster 启动的任务组成,它拥有名称、队列、优先级等属性,是一个比较宽泛的概念,可以是一个 MepReduce 作业、一个 DAG 应用程序等。YARN 中 Application 管理涉及应用程序的权限管理、启动与关闭、生命周期管理等,本节只介绍最基本的管理内容,比如权限管理、启动与关闭等,而生命周期管理则放到下一节中介绍。原创 2023-01-11 18:19:40 · 438 阅读 · 0 评论 -
【深入浅出 Yarn 架构与实现】4-3 RM 管理 NodeManager
本篇继续对 RM 中管理 NodeManager 的部分进行深入的讲解。主要有三个部分:检查 NM 是否存活;管理 NM 的黑白名单;响应 NM RPC 请求。原创 2022-12-26 19:03:20 · 431 阅读 · 3 评论 -
【深入浅出 Yarn 架构与实现】4-2 RM 管理 Application Master
本篇将对 RM 中管理 Application Master 的部分进行深入的讲解。下面将会介绍 RM 与 AM 整体通信执行流程,并对 RM 中涉及的对应服务进行具体讲解。为了更好的学习本篇知识,建议先熟悉以下知识点,不了解的部分可翻到前面对应的文章进行学习:原创 2022-12-23 21:47:50 · 344 阅读 · 0 评论 -
【深入浅出 Yarn 架构与实现】4-1 ResourceManager 功能概述
前面几篇文章对 Yarn 基本架构、程序基础库、应用设计方法等进行了介绍。之后几篇将开始对 Yarn 核心组件进行剖析。ResourceManager(RM)是 Yarn 的核心管理服务,负责集群管理、任务调度、状态机管理等,本篇将对 RM 总体架构进行介绍。原创 2022-11-22 20:03:31 · 828 阅读 · 0 评论 -
【深入浅出 Yarn 架构与实现】3-3 Yarn Application Master 编写
本篇文章继续介绍 Yarn Application 中 ApplicationMaster 部分的编写方法。原创 2022-11-18 20:44:07 · 906 阅读 · 0 评论 -
【深入浅出 Yarn 架构与实现】3-2 Yarn Client 编写
上篇文章介绍了编写 Yarn Application 的整体框架流程,本篇文章将详细介绍其中 Client 部分的编写方式。原创 2022-11-17 20:17:29 · 1015 阅读 · 0 评论 -
【深入浅出 Yarn 架构与实现】3-1 Yarn Application 流程与编写方法
本篇学习 Yarn Application 编写方法,将带你更清楚的了解一个任务是如何提交到 Yarn ,在运行中的交互和任务停止的过程。通过了解整个任务的运行流程,帮你更好的理解 Yarn 运作方式,出现问题时能更好的定位。原创 2022-11-14 18:42:15 · 1291 阅读 · 0 评论 -
【深入浅出 Yarn 架构与实现】2-4 Yarn 基础库 - 状态机库
当一个服务拥有太多处理逻辑时,会导致代码结构异常的混乱,很难分辨一段逻辑是在哪个阶段发挥作用的。这时就可以引入状态机模型,帮助代码结构变得清晰。原创 2022-11-01 20:20:08 · 518 阅读 · 0 评论 -
【深入浅出 Yarn 架构与实现】2-3 Yarn 基础库 - 服务库与事件库
一个庞大的分布式系统,各个组件间是如何协调工作的?组件是如何解耦的?线程运行如何更高效,减少阻塞带来的低效问题?本节将对 Yarn 的服务库和事件库进行介绍,看看 Yarn 是如何解决这些问题的。原创 2022-10-13 20:23:33 · 1302 阅读 · 0 评论 -
【深入浅出 Yarn 架构与实现】2-2 Yarn 基础库 - 底层通信库 RPC
RPC(Remote Procedure Call) 是 Hadoop 服务通信的关键库,支撑上层分布式环境下复杂的进程间(Inter-Process Communication, IPC)通信逻辑,是分布式系统的基础。允许运行于一台计算机上的程序像调用本地方法一样,调用另一台计算机的子程序。由于 RPC 服务整体知识较多,本节仅针对对 Yarn RPC 进行简略介绍,详细内容会后续开专栏介绍。原创 2022-10-09 19:50:46 · 277 阅读 · 0 评论 -
【深入浅出 Yarn 架构与实现】2-1 Yarn 基础库概述
了解 Yarn 基础库是后面阅读 Yarn 源码的基础,本节对 Yarn 基础库做总体的介绍。并对其中使用的第三方库 Protocol Buffers 和 Avro 是什么、怎么用做简要的介绍。原创 2022-09-28 11:05:44 · 207 阅读 · 0 评论 -
【深入浅出 Yarn 架构与实现】1-2 搭建 Hadoop 源码阅读环境
本文将介绍如何使用 idea 搭建 Hadoop 源码阅读环境。(默认已安装好 Java、Maven 环境)原创 2022-09-27 11:25:47 · 810 阅读 · 0 评论 -
【深入浅出 Yarn 架构与实现】1-1 设计理念与基本架构
由于之前 Hadoop 资源调度的种种问题,新的资源调度框架产生了 —— YARN(Yet Another Resource Negotiator)。它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。Hadoop2 之前是由 HDFS 和 MR 组成的,HDFS 负责存储,MR 负责计算。ApplicationMaster 是一个任务最先启动的容器,用于管理当前任务的调度。原创 2022-09-22 15:38:29 · 646 阅读 · 0 评论