YARN的产生背景和架构剖析

2023-11-15

hadoop1存在的问题
1、单点故障,可靠性低: JobTracker采用了master/slave结构,是集群事务的集中处理点,存在单点故障
2、单点瓶颈,扩展性差: 需要完成的任务太多,JobTracker兼顾资源管理和作业控制跟踪功能跟踪任务,启动失败或者迟缓的任务,记录任务的执行状态,维护计数器,压力大,成为系统瓶颈
3、资源管理和任务执行强耦合: 在JobTracker端,用Map/Reduce Task作为资源的表示过于简单,没有考虑到CPU、内存等资源情况,当把两个需要消耗大内的Task调度到一起,很容易出现OOM。
4、资源利用率低: 基于槽位的资源分配模型,槽位是一种粗粒度的资源划分单位,通常一个任务不会用完一个槽位的资源,hadoop1把资源强制划分为Map/Reduce两种Slot,当只有maptask时,Reduce slot不能用,当只有Reduce Task时,Map Slot不能用,容易造成资源利用 不足
5、不支持多种分布式计算框架

Hadoop YARN架构演进

从Hadoop-2.x开始,Hadoop的架构发生了变化:将hadoop1的MapReduce集群一分为二 MapReduce和YARN

  • MapReduce: 仅仅只是一套用来编写分布式计算应用程序的API
  • YARN: 是一个master/slave架构的分布式集群,用来进行集群的资源管理和调度工作,提供了job调度规范,出了能运行MapReduce应用程序之外,还可以支持Spark、Flink等分布式计算应用程序。

这样拆分的目的,大大的提高了Hadoop平台通用性,逐渐演变成一个大数据基础平台,甚至可以理解成用来解决大数据问题的分布式操作系统。

Hadoop YARN的概述
YARN的核心特性:

  • YARN并不清楚用户提交的程序上运行机制,只提供了一套资源管理和调度的规范
  • YARN只提供运算资源的调度
  • YARN是一个master/slave的主从架构,依靠zookeeper实现HA,主节点叫做ResourceManager,从节点叫做NodeManager
  • YARN被设计成一个通用的资源管理和作业调度平台,Spark、Flink等运算框架都可以整合到YARN上运行,只要满足YARN的规范的资源请求机制即可。

优点:

  • 极大减少了JobTracker的资源消耗,每个应用程序的ApplicationMaster都分布在分布式的整个集群的所有NodeManager中。
  • YARN中的ApplicationMaster只有一个规范,用户可以把自己的分布式计算应用程序部署到YARN上运行,只要满足ApplicationMaster的规范
  • YARN中的container的资源抽象比slot更合理,老版本Slot分为Mapslot和Reduceslot,不能混合使用,资源利用率低
  • 借用Zookeeper解决RM的SPOF问题,老版本JobTracker上存在SPOF的问题的
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

YARN的产生背景和架构剖析 的相关文章

随机推荐

  • c,c++小白到大神系列教程之一:C语言入门-王健伟-专题视频课程

    c c 小白到大神系列教程之一 C语言入门 1127人已学习 课程介绍 本课程针对 有一点计算机基础比如知道二进制 八进制 十六进制数据的含义 对内存 堆 栈等有基本概念的计算机初学者 全面介绍C语言精华内容以及利用C语言进行程序设计的方法
  • 三角脉冲信号的表达式_【信号处理工具箱】—信号表示方法

    1 工具箱中常见的函数 1 sawtooth函数 sawtooth函数用于产生锯齿波或三角波信号 格式如下 t 0 0 0001 1 y sawtooth 2 pi 50 t subplot 211 plot t y axis 0 0 2
  • 用java做一个超级马里奥的小游戏

    好的 首先你需要准备一些基本的知识和工具 了解 Java 语言的基本语法和编程概念 安装好 Java 开发环境 比如 Eclipse 或者 IntelliJ IDEA 准备好一些图像和音频资源 用于游戏中的背景 角色 音效等元素 接下来 你
  • wazuh 收集 suricata eve.json日志

    安装suricata和规则 源码或者安装包 本博客提供安装包操作方式 切换成超级用户进行操作 yum y install epel release wget jq curl O https copr fedorainfracloud org
  • 2013豆瓣校园招聘研发类笔试题

    2013豆瓣校园招聘研发类笔试题 1 将一个递归算法改为对应的非递归算法时 通常需要使用 A 优先队列 B 队列 C 循环队列 D 栈 2 爸爸 妈妈 妹妹 小强 至少两个人同一生肖的概率是多少 A 41 96 B 55 96 C 72 1
  • qqkey获取原理_通过call获取qqkey支持最新版

    如果真 进程 是否存在 TIM exe 假 且 进程 是否存在 QQ exe 假 str 你还没有登录QQ 返回 0 如果真结束 如果真 进程 是否存在 QQ exe pid 进程 取同名ID QQ exe pids 计次循环首 pid i
  • python Web开发 flask轻量级Web框架

    O flask介绍 Flask是一个使用 Python 编写的轻量级 Web 应用框架 其 WSGI 工具箱采用 Werkzeug 模板引擎则使用 Jinja2 Flask使用 BSD 授权 Flask也被称为 microframework
  • 数据结构题目-稀疏矩阵

    目录 问题 AU 函数可变参数练习 附加代码模式 问题 AV 多维下标向一维下标的换算 问题 AW 稀疏矩阵类型判断 问题 AX 稀疏矩阵转换成简记形式 附加代码模式 问题 AY 根据三元组输出稀疏矩阵 问题 AZ 三元组法表示的稀疏矩阵
  • python3.7解决ModuleNotFoundError: No module named '_bz2'

    安装完python3 7之后运行一个软件提示错误 from bz2 import BZ2Compressor BZ2Decompressor ModuleNotFoundError No module named bz2 解决方法如下 一
  • Linux内存管理子系统

    1 Linux子系统 Linux内核组成 SCI系统调用接口 PM进程管理子系统 MM内存管理子系统 Arch体系结构相关代码 DD驱动程序 Network Stack网络协议站 VFS虚拟文件系统 DD驱动程序 2 Linux内存管理子系
  • 《Apache MINA 2.0 用户指南》第十二章:日志过滤器

    后台 用户开放基于Apache MiNa的应用程序 用户可以在应用程序中创建日志管理 SLF4J MINa采用SLF4j作为日志输出 你可以在这里发现很多关于SLF4j的相关介绍 这个日志工具允许任何形式的日志系统实施 你可能使用 log4
  • 手把手教你使用gtest写单元测试

    开源框架 gtest 它主要用于写单元测试 检查真自己的程序是否符合预期行为 这不是QA 测试工程师 才学的 也是每个优秀后端开发codoer的必备技能 本期博文内容及使用的demo 参考 Googletest Basic Guide 1
  • 设计模式——多线程下的懒汉式单例

    懒汉 模式虽然有优点 但是每次调用 GetInstance 静态方法时 必须判断NULL m instance 使程序相对开销增大 多线程中会导致多个实例的产生 从而导致运行代码不正确以及内存的泄露 对于多线程的问题 我们可以看下面这个例子
  • 手把手教你用MindSpore训练一个AI模型!

    首先我们要先了解深度学习的概念和AI计算框架的角色 https zhuanlan zhihu com p 463019160 本篇文章将演示怎么利用MindSpore来训练一个AI模型 和上一章的场景一致 我们要训练的模型是用来对手写数字图
  • 中序线索化二叉树及遍历

    中序线索化二叉树及遍历 函数接口定义 void InThreading BiThrTree p 以结点P为根的子树中序线索化 void InOrderTraverse Thr BiThrTree T 中序遍历二叉线索树T的非递归算法 对每个
  • 科目1基础知识快速入门精简

    科目1 4 科目一 又称科目一理论考试 驾驶员理论考试 学习道路交通安全法律 法规和相关知识学习 考试内容包括驾车理论基础 道路安全法律法规 地方性法规等相关知识 再加地方性法规 考试形式为上机考试 100道题 90分及以上过关 科目二 又
  • linux文件编程(1)—— open、write、read、lseek、阻塞问题(ps文件操作/文件描述符/重定向原理/缓冲区/标准错误)

    参考 linux文件编程 1 常用API之open write read lseek 作者 丶PURSUING 发布时间 2021 04 08 22 19 28 网址 https blog csdn net weixin 44742824
  • SpringBoot通过QRCode生成二维码

    一 添加依赖
  • vue实现多页面应用开发,包含项目之间跳转

    需求 在一个vue项目工程下 需要部署两个项目甚至多个项目 实现思路 第一步 在vue config js文件中配置两个项目的入口 module exports pages index页面是必须的 作为主项目的入口页面 index entr
  • YARN的产生背景和架构剖析

    hadoop1存在的问题 1 单点故障 可靠性低 JobTracker采用了master slave结构 是集群事务的集中处理点 存在单点故障 2 单点瓶颈 扩展性差 需要完成的任务太多 JobTracker兼顾资源管理和作业控制跟踪功能跟