| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> hadoop yarn调度平台 -> 正文阅读 |
|
[大数据]hadoop yarn调度平台 |
前言YARN 是 Hadoop 资源管理器。负责协调任务作业的服务器资源。使任务有序对资源进行利用。除了支持原生 MapReduce任务,他还提供了Spark等任务接入的入口。 基本概念
ResourceManager (RM)ResourceManager 是一个全局的资源管理器,负责整个系统的资源管理和分配, 它主要由两个组件组成:
ApplicationMaster(AM)当用户提交一个应用程序时,将启动一个被称为 ApplcationMaster 的轻量级进程的实例,用以协调应用程序内所有任务的执行。它的主要工作包括:
NodeManager(NM)NodeManager 进程运行在集群中的节点上,是每个节点上的资源和任务管理器。它的主要功能包括:
Container(容器)Container 是 Yarn 中的资源抽象,是执行具体应用的基本单位,它包含了某个 NodeManager 节点上的多维度资源,如内存、CPU、磁盘和网络 IO,当然目前仅支持内存和 CPU。任何一个 Job 或应用程序必须运行在一个或多个 Container 中,在 Yarn 中,ResourceManager 只负责告诉 ApplicationMaster 哪些 Containers 可以用,ApplicationMaster 需要自己去找 NodeManager 请求分配具体的 Container。
Yarn 任务提交流程下面我们详细了解下一个任务是怎么提交到 Yarn 中运行的。
Yarn调度器介绍ResourceScheduler是资源调度器,它按照一定的约束条件(比如队列容量限制等)将集群中的资源分配给各个应用程序,当前主要考虑内存和CPU资源。 FIFO Scheduler(先进先出调度器)FIFO Scheduler把应用按提交的顺序排成一个队列,这是一个先进先出队列,在进行资源分配的时候,先给队列中最头上的应用进行分配资源,待最头上的应用需求满足后再给下一个分配,以此类推。
Capacity Scheduler(容量调度器)Capacity Scheduler调度器以队列为单位划分资源。简单通俗点来说,就是一个个队列有独立的资源,队列的结构和资源是可以进行配置的
Fair Scheduler(公平调度器)Fair Scheduler也是基于队列的,与Capacity Scheduler相似,其不同点
公平调度器队列资源分配方式1.FIFO策略公平调度器每个队列资源分配策略若是选择FIFO,相当于容量调度器; 2.Fair策略3.DRF策略DRF(Dominant Resource Fairness)主导资源公平调度算法,是一种通用的多资源最大-最小公平分配策略(Max-Min Fairness Strategy),核心思想是在多环境下一个用户的资源分配应该由用户的主导份额资源决定。用户所有份额中的最大值称为该用户的主导份额,与主导份额相对应的资源称为主导资源。
源码分析《ApplicationMaster源码分析》 通过Container启动流程可以发现,Container是逻辑分配,真正直接管理的还是通过shell命令 让程序以 docker的方式运行,或者《linux的cgroups详解》对进行CPU,内存等资源进行管控。
yarn的发展yarn 只是对任务的一个资源管理,但实际的大数处理场景中,很多问题会转换成DAG任务关系,因此需要工作流调度工具去解决
同样的yarn平台基于MR模型的任务会在DAG关系中,会对中间状态数据存入,取出HDFS,实际中用户并不关心中间结果。因此需求更好的计算模块去解决中间数据的问题
编写MR程序,或者Spark程序是复杂的,对于快速响应的数据分析。大家都想基于高级的脚本语言,由程序翻译成MR代码
主要参考《Yarn 架构》 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 23:31:13- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |