IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Yarn原理解析 -> 正文阅读

[大数据]Yarn原理解析

一、Hadoop1.X

从Hadoop1.X中出现的缺点就可以知道,为啥会有Yarn的出现

1、JobTracker:资源管理、任务调度

2、TaskTracker:任务管理、资源汇报

3、Client:

(1)会根据每次的计算数据,咨询NameNode元数据(block),计算split,得到一个切片【清单】,map的数量就有了。
split是逻辑的,block是物理的,block身上有(offset、location),split和block有映射关系,由此可以得出split包含偏移量,以及split对应的map任务应该移动到哪些节点,可以支持计算向数据移动。
(2)生成计算程序未来运行时的相关【配置文件】
(3)未来的移动应该相对可靠:Cli会将split清单、配置xml上传到hdfs的目录中
(4)Cli会调用JobTracker,通知要启动一个计算程序了,并且告知文件都放在了hdfs的哪些地方

4、JobTracker收到启动程序之后:

(1)从hdfs中取回【split清单】
(2)根据自己收到的TaskTracker汇报的资源,最终确定一个split对应的map应该去到哪一个节点【确定清单】
(3)未来,TaskTracker在心跳的时候会取回分配给自己的任务信息

5、TaskTracker:

(1)在心跳取回任务后,从hdfs中下载xml等到本机
(2)启动任务描述中的MapTask/ReduceTask(最终,代码在某一个节点被启动,是通过Cli上传,TaskTracker下载,计算向数据移动的实现)

在Hadoop1.X中,由JobTracker做资源管理、任务调度,有以下三个问题:

1、单点故障
2、压力过大
3、集成了【资源管理和任务调度】,两者耦合
,未来新的计算框架不能复用资源管理

二、Hadoop2.X

所以在Hadoop2.X中采用Yarn来做资源管理
Yarn

1、模型

(1)container容器

可以是虚的:想象成一个对象,有一些属性,NameNode、CPU、内存、IO

也可以是物理的:可以是一个JVM- > 操作系统进程

NodeManager会有线程监控container的资源情况,超额时NodeManager直接杀掉
通过cgroup(内核级技术):在启动JVM进程时,由kernel约束死(只能使用多大的内存)

2、实现(架构 / 框架)

(1)ResourceManager(主)

负责整体资源的管理

(2)NodeManager(从)

向ResourceManager汇报心跳,提交自己的资源使用情况

3、MapReduce运行:MapReduce On Yarn

(1)MapReduce-Cli 将切片清单 / 配置 / jar 上传到HDFS,访问ResourceManager申请AppMaster

(2)ResourceManager选择一台不忙的节点通知NodeManager启动一个Container,在里面反射一个MapReduce 的AppMaster

(3)启动MapReduce的AppMaster,从hdfs上下载切片清单,向ResourceManager申请资源

(4)由ResourceManager根据自己掌握的资源情况,得到一个确定清单,通知NodeManager启动Container

(5)Container启动后会反向注册到已经启动的MapReduce的AppMaster进程上

(6)由MapReduce的AppMaster(曾经的JobTracker阉割版,不带资源管理)最终将Task发送给Container

(7)Container会反射相应的Task类为对象,调用方法执行,其结果就是业务逻辑代码的执行

(8)计算框架都有Task失败重试的机制

结论

(1)单点故障(曾经是全局的,JobTracker挂了,整个计算层就没有调度)

现在Yarn:每一个APP都有自己的APP Master调度,不是全局的;同时Yarn支持APP Master失败重试

(2)压力过大

Yarn中每个计算程序都有自己的APP Master,每个APP Master只负责自己计算程序的任务调度,更轻量;APP Master是在不同的节点中启动的,默认有了负载的光环

(3)耦合的问题

因为Yarn只是资源管理,不负责具体的任务调度,是中立的,只要计算框架继承Yarn的APP Master,大家都可以使用一个统一视图的资源层。

从HADOOP 1.X 到 2.X

1.X的JobTracker和TaskTracker是常服务

2.X之后没有了这些服务,相对的MapReduce的Cli、调度、任务这些都是临时服务了

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-05 20:22:40  更:2021-07-05 20:22:50 
 
开发: 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年5日历 -2024/5/1 6:46:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码