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的产生背景和架构剖析 的相关文章

  • 使用 Hadoop MapReduce 的计算语言学项目构想

    我需要做一个关于计算语言学课程的项目 是否有任何有趣的 语言 问题 其数据密集程度足以使用 Hadoop MapReduce 来解决 解决方案或算法应尝试分析并提供 语言 领域的一些见解 但是它应该适用于大型数据集 以便我可以使用 hado
  • 使用自制软件安装hadoop时出错

    我正在尝试在 Mac 上本地安装 hadoop 但在尝试 brew install hadoop 时收到以下错误 brew install hadoop gt Downloading http www apache org dyn clos
  • Hive如何存储数据,什么是SerDe?

    当查询表时 SerDe 将将文件中的字节中的一行数据反序列化为 Hive 内部使用的对象来操作该行数据 执行 INSERT 或 CTAS 时 请参阅第 441 页上的 导入数据 表的 SerDe 将将 Hive 的一行数据的内部表示序列化为
  • 无法使用 PDI 步骤连接到 HDFS

    我已经配置成功了Hadoop 2 4 in an Ubuntu 14 04 虚拟机 from a 视窗8系统 Hadoop 安装工作绝对正常 而且我还可以从 Windows 浏览器查看 Namenode 附图如下 所以 我的主机名是 ubu
  • Sqoop Import --password-file 功能在 sqoop 1.4.4 中无法正常工作

    我使用的是hadoop 1 2 1 sqoop版本是1 4 4 我正在尝试运行以下查询 sqoop import connect jdbc mysql IP 3306 database name table clients target d
  • 将 hadoop fs 路径转换为 ​​EMR 上的 hdfs:// 路径

    我想知道如何将数据从 EMR 集群的 HDFS 文件系统移动到 S3 存储桶 我认识到我可以直接在 Spark 中写入 S3 但原则上 之后执行它也应该很简单 到目前为止 我还没有发现在实践中这是正确的 AWS 文档建议s3 dist cp
  • 无法从 JAR 文件加载主类

    我有一个 Spark scala 应用程序 我尝试显示一条简单的消息 Hello my App 当我编译它时sbt compile并运行它sbt run没关系 我成功显示了我的消息 但他显示了错误 像这样 Hello my applicat
  • 将多个前缀行过滤器设置为扫描仪 hbase java

    我想创建一台扫描仪 它可以为我提供带有 2 个前缀过滤器的结果例如 我想要其键以字符串 x 开头或以字符串 y 开头的所有行 目前我知道只能使用一个前缀 方法如下 scan setRowPrefixFilter prefixFiltet 在
  • 在 Hive 中分解一行 XML 数据

    我们将 XML 数据作为名为 XML 的单个字符串列加载到 Hadoop 中 我们正在尝试检索数据级别 并将其标准化或分解为单行进行处理 你知道 就像表格一样 已经尝试过分解功能 但没有得到我们想要的 示例 XML
  • Hive查询快速查找表大小(行数)

    是否有 Hive 查询可以快速查找表大小 即行数 而无需启动耗时的 MapReduce 作业 这就是为什么我想避免COUNT I tried DESCRIBE EXTENDED 但这产生了numRows 0这显然是不正确的 对新手问题表示歉
  • 为什么组合器输入记录的数量比映射的输出数量多?

    Combiner 在 Mapper 之后 Reducer 之前运行 它将接收给定节点上的 Mapper 实例发出的所有数据作为输入 然后它将输出发送到Reducers 因此组合器输入的记录应小于映射输出的记录 12 08 29 13 38
  • Couchbase/hadoop 连接器:sqoop 作业失败“找到接口 org.apache.hadoop.mapreduce.TaskAttemptContext,但需要类”

    我的配置 CouchBase服务器2 0 Sqoop 1 4 2 针对hadoop版本2 0 0编译 堆栈Hadoop CDH4 1 2 我想使用 CouchBase Hadoop 连接器 http www couchbase com de
  • hive查询无法通过jdbc生成结果集

    我是 Hive 和 Hadoop 的新手 在我的教程中 我想将表创建为 import java sql SQLException import java sql Connection import java sql ResultSet im
  • http://localhost:50070/ 的 hadoop Web UI 不起作用

    命令 jps 显示以下详细信息 第5144章 5464 节点管理器 5307 资源管理器 5800 Jps 显然namenode和datanode丢失了 网络用户界面位于http 本地主机 50070 http localhost 5007
  • 如何通过Python访问Hive?

    https cwiki apache org confluence display Hive HiveClient HiveClient Python https cwiki apache org confluence display Hi
  • 猪参考

    我正在学习 Hadoop Pig 并且我总是坚持引用元素 请查找下面的示例 groupwordcount group chararray words bag of tokenTuples from line token chararray
  • Hive - 线程安全的自动递增序列号生成

    我遇到一种情况 需要将记录插入到特定的 Hive 表中 其中一列需要是自动递增的序列号 即在任何时间点都必须严格遵循 max value 1 规则 记录从许多并行的 Hive 作业插入到这个特定的表中 这些作业每天 每周 每月批量运行 现在
  • YARN UNHEALTHY 节点

    在我们的 YARN 集群已满 80 的情况下 我们看到一些纱线节点管理器被标记为不健康 在深入研究日志后 我发现这是因为数据目录的磁盘空间已满 90 出现以下错误 2015 02 21 08 33 51 590 INFO org apach
  • 猪的组连接等效吗?

    试图在 Pig 上完成这个任务 寻找 MySQL 的 group concat 等效项 例如 在我的表中 我有以下内容 3fields userid clickcount pagenumber 155 2 12 155 3 133 155
  • 我可以在没有 Hadoop 的情况下使用 Spark 作为开发环境吗?

    我对大数据和相关领域的概念非常陌生 如果我犯了一些错误或拼写错误 我很抱歉 我想了解阿帕奇火花 http spark apache org 并使用它仅在我的电脑中 在开发 测试环境中 由于Hadoop包含HDFS Hadoop分布式文件系统

随机推荐

  • 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兼顾资源管理和作业控制跟踪功能跟