Loading

随笔分类 -  深入浅出 Yarn 架构与实现

摘要:本文将深入探讨 AM 向 RM 申请并获得 Container 资源后,在 NM 节点上如何启动和清理 Container。将详细分析整个过程的源码实现。 阅读全文
posted @ 2023-05-15 19:43 大数据王小皮 阅读(540) 评论(0) 推荐(0)
摘要:不要跳过这部分知识,对了解 NodeManager 本地目录结构,和熟悉 Container 启动流程有帮助。 阅读全文
posted @ 2023-05-08 20:15 大数据王小皮 阅读(853) 评论(0) 推荐(0)
摘要:NodeManager(NM)中的状态机分为三类:Application、Container 和 LocalizedResource,它们均直接或者间接参与维护一个应用程序的生命周期。 阅读全文
posted @ 2023-04-03 20:09 大数据王小皮 阅读(543) 评论(0) 推荐(0)
摘要:本节开始将对 Yarn 中的 NodeManager 服务进行剖析。 NodeManager 需要在每个计算节点上运行,与 ResourceManager 和 ApplicationMaster 进行交互。管理节点的计算资源以及调度容器。后续将对 NM 的功能职责、状态机、容器生命周期和资源隔离等方面进行讲解。本篇将从整体上对 NM 进行介绍。 阅读全文
posted @ 2023-03-31 18:18 大数据王小皮 阅读(920) 评论(0) 推荐(0)
摘要:本篇将对 Yarn 调度器中的资源抢占方式进行探究。分析当集群资源不足时,占用量资源少的队列,是如何从其他队列中抢夺资源的。我们将深入源码,一步步分析抢夺资源的具体逻辑。 阅读全文
posted @ 2023-03-27 20:28 大数据王小皮 阅读(618) 评论(0) 推荐(1)
摘要:本篇文章将深入介绍 Yarn 三种调度器。Yarn 本身作为资源管理和调度服务,其中的资源调度模块更是重中之重。下面将介绍 Yarn 中实现的调度器功能,以及内部执行逻辑。 阅读全文
posted @ 2023-03-23 19:39 大数据王小皮 阅读(1769) 评论(0) 推荐(0)
摘要:资源调度器是 YARN 中最核心的组件之一,它是 ResourceManager 中的一个插拔式服务组件,负责整个集群资源的管理和分配。 Yarn 默认提供了三种可用资源调度器,分别是FIFO (First In First Out )、 Yahoo! 的 Capacity Scheduler 和 Facebook 的 Fair Scheduler。 本节会重点介绍资源调度器的基本框架,在之后文章中详细介绍 Capacity Scheduler 和 Fair Scheduler。 阅读全文
posted @ 2023-03-21 18:56 大数据王小皮 阅读(586) 评论(0) 推荐(0)
摘要:本小节介绍应用程序的 ApplicationMaster 在 NodeManager 成功启动并向 ResourceManager 注册后,向 ResourceManager 请求资源(Container)到获取到资源的整个过程,以及 ResourceManager 内部涉及的主要工作流程。 阅读全文
posted @ 2023-03-01 20:12 大数据王小皮 阅读(293) 评论(0) 推荐(0)
摘要:本节开始,将对 ResourceManager 中一些常见行为进行分析探究,看某些具体关键的行为,在 RM 中是如何流转的。本节将深入源码探究「启动 ApplicationMaster」的具体流程。 阅读全文
posted @ 2023-02-28 20:40 大数据王小皮 阅读(409) 评论(0) 推荐(0)
摘要:在 YARN 中,Application 是指应用程序,它可能启动多个运行实例,每个运行实例由 —个 ApplicationMaster 与一组该 ApplicationMaster 启动的任务组成,它拥有名称、队列、优先级等属性,是一个比较宽泛的概念,可以是一个 MepReduce 作业、一个 DAG 应用程序等。YARN 中 Application 管理涉及应用程序的权限管理、启动与关闭、生命周期管理等,本节只介绍最基本的管理内容,比如权限管理、启动与关闭等,而生命周期管理则放到下一节中介绍。 阅读全文
posted @ 2023-01-11 18:22 大数据王小皮 阅读(319) 评论(0) 推荐(0)
摘要:本篇继续对 RM 中管理 NodeManager 的部分进行深入的讲解。主要有三个部分:检查 NM 是否存活;管理 NM 的黑白名单;响应 NM RPC 请求。 阅读全文
posted @ 2022-12-26 19:04 大数据王小皮 阅读(386) 评论(0) 推荐(0)
摘要:本篇将对 RM 中管理 Application Master 的部分进行深入的讲解。 下面将会介绍 RM 与 AM 整体通信执行流程,并对 RM 中涉及的对应服务进行具体讲解。 为了更好的学习本篇知识,建议先熟悉以下知识点,不了解的部分可翻到前面对应的文章进行学习: 阅读全文
posted @ 2022-12-23 21:50 大数据王小皮 阅读(302) 评论(0) 推荐(0)
摘要:前面几篇文章对 Yarn 基本架构、程序基础库、应用设计方法等进行了介绍。之后几篇将开始对 Yarn 核心组件进行剖析。 ResourceManager(RM)是 Yarn 的核心管理服务,负责集群管理、任务调度、状态机管理等,本篇将对 RM 总体架构进行介绍。 阅读全文
posted @ 2022-11-22 20:16 大数据王小皮 阅读(751) 评论(0) 推荐(1)
摘要:本篇文章继续介绍 Yarn Application 中 ApplicationMaster 部分的编写方法。 阅读全文
posted @ 2022-11-18 20:48 大数据王小皮 阅读(636) 评论(0) 推荐(0)
摘要:上篇文章介绍了编写 Yarn Application 的整体框架流程,本篇文章将详细介绍其中 Client 部分的编写方式。 阅读全文
posted @ 2022-11-17 20:21 大数据王小皮 阅读(583) 评论(0) 推荐(0)
摘要:本篇学习 Yarn Application 编写方法,将带你更清楚的了解一个任务是如何提交到 Yarn ,在运行中的交互和任务停止的过程。通过了解整个任务的运行流程,帮你更好的理解 Yarn 运作方式,出现问题时能更好的定位。 一、简介 本篇将对 Yarn Application 编写流程进行介绍。 阅读全文
posted @ 2022-11-14 18:47 大数据王小皮 阅读(819) 评论(0) 推荐(0)
摘要:当一个服务拥有太多处理逻辑时,会导致代码结构异常的混乱,很难分辨一段逻辑是在哪个阶段发挥作用的。 这时就可以引入状态机模型,帮助代码结构变得清晰。 一、状态机库概述 一)简介 状态机由一组状态组成: 【初始状态 -> 中间状态 -> 最终状态】。 在一个状态机中,每个状态会接收一组特定的事件,根据事 阅读全文
posted @ 2022-11-11 20:56 大数据王小皮 阅读(549) 评论(3) 推荐(1)
摘要:一个庞大的分布式系统,各个组件间是如何协调工作的?组件是如何解耦的?线程运行如何更高效,减少阻塞带来的低效问题?本节将对 Yarn 的服务库和事件库进行介绍,看看 Yarn 是如何解决这些问题的。 阅读全文
posted @ 2022-11-10 18:08 大数据王小皮 阅读(431) 评论(0) 推荐(1)
摘要:RPC(Remote Procedure Call) 是 Hadoop 服务通信的关键库,支撑上层分布式环境下复杂的进程间(Inter-Process Communication, IPC)通信逻辑,是分布式系统的基础。允许运行于一台计算机上的程序像调用本地方法一样,调用另一台计算机的子程序。由于 阅读全文
posted @ 2022-11-09 18:04 大数据王小皮 阅读(500) 评论(0) 推荐(0)
摘要:了解 Yarn 基础库是后面阅读 Yarn 源码的基础,本节对 Yarn 基础库做总体的介绍。并对其中使用的第三方库 Protocol Buffers 和 Avro 是什么、怎么用做简要的介绍。 一、主要使用的库 Protocol Buffers:是 Google 开源的序列化库,具有平台无关、高性 阅读全文
posted @ 2022-11-08 18:41 大数据王小皮 阅读(535) 评论(0) 推荐(2)