Hadoop_YARN框架
Hadoop学习笔记总结
01. YARN框架
1. 新一代的框架介绍
YARN的职能就是将资源调度和任务调度分开。资源管理器ResourceManager全局管理所有应用程序计算资源的分配,每一个job的ApplicationMaster负责相应任务的调度和协调。
- ResourceManager做的事情是负责协调集群上计算资源的分配。调度、启动每一个 Job 所属的 ApplicationMaster、另外监控 ApplicationMaster 的存在情况。
- NodeManager 功能比较专一,根据要求启动和监视集群中机器的计算容器container。负责 Container 状态的维护,并向 RM 保持心跳汇报该节点资源使用情况。
- ApplicationMaster 负责一个 Job 生命周期内的所有工作。注意每一个Job都有一个 ApplicationMaster。它和MapReduce任务一样在容器中运行。AM通过与RM交互获取资源,然后然后通过与NM交互,启动计算任务。
- 容器是由ResourceManager进行统一管理和分配的。有两类container:一类是AM运行需要的container;另一类是AP为执行任务向RM申请的。
- YARN的作用:资源调度。
ResourceManager------NodeManager
主节点 ---------- 从节点- ApplicationMaster作用:任务调度
MRAppMaster ------ yarnchild
动态产生 ------ 动态产生(可以是Map,可以是Reduce)
YARN中提交job的详细流程
不是完全正确,下面是一些解释和更正:
- RunJar里面的Conf的配置引用决定了是在本地还是集群运行。是提交到集群yarn_provider还是本地运行local_provider。配置conf决定了是访问远程rpc还是本地rpc。
- 步骤2中的staging_dir存放的是作业Jar、配置信息和分片信息;这个staging_dir默认是在HDFS上。
- 步骤5是ResourceManager将任务添加到任务队列中。然后,ResourceManager将随机挑选一个NodeManager管理下的Container分配给ApplicationMaster进程,作为MRAppMaster任务调度中心。
- MRAppMaster会对作业初始化,接受任务的进度和完成报告;接受HDFS中存放的客户端计算的输入分片信息,对每一个分片创建一个map任务对象和由mapreduce.job.reduces确定的reduce对象。
- ApplicationMaster会为该作业所有的map和reduce任务向ResourceManager请求容器(包括内存资源和CPU资源);附着心跳信息的请求包括map任务的本地化信息,如输入分片所在的主机和机架信息。ResourceManager根据这些信息完成分配决策,理想情况会将任务分配给数据本地化的节点。
- ResourceManager为任务分配了容器后,ApplicationMaster就通过节点间通信来启动NodeManager中的容器,任务由容器中的YarnChild应用程序执行。在任务执行前,容器将任务需要的资源本地化,包括staging_dir中的作业Jar、配置和文件资源。
- ApplicationMaster负责启动map和reduce任务,监控。并在所有任务完成后,向ResourceManager注销自己,清理工作状态。
- 在实际运行中,NodeManager节点会随机被指定MRAppMaster进程,然后在任务节点出现yarnChild进程。yarnChild进程执行完map或reduce任务后会消失,MRAppMaster进程执行完这个job后会消失。
2. YARN框架的通用性
资源管理框架ResourceManager可以为MapReduce、Spark、Storm等计算框架实现资源调度。但是这些计算框架需要实现一个接口,AppMaster;资源管理器才能启动这个AppMaster执行计算任务。
比如只需要MR实现MRAppMaster,Spark也需要实现SparkAppMaster
3. YARN提交job的源码流程
4. YARN的HA
Yarn的Ha只能保证,在一个节点失效时,另一台能提供服务。但是不能像HDFS一样智能。Application在执行一半时ResourceManager宕机,另一个ResourceManager不能继续提供任务的执行服务,因为中间数据太多,Hadoop未实现这种任务调度的切换。而HDFS的HA可以保证杀掉active状态的NameNode,文件依然能够上传成功。
参考《Hadoop权威指南》和博客《http://dongxicheng.org/mapreduce-nextgen/nodemanager-container-launch-process/》
初接触,记下学习笔记,还有很多问题,望指导,谢谢。
Hadoop_YARN框架的更多相关文章
- 避免重复造轮子的UI自动化测试框架开发
一懒起来就好久没更新文章了,其实懒也还是因为忙,今年上半年的加班赶上了去年一年的加班,加班不息啊,好了吐槽完就写写一直打算继续的自动化开发 目前各种UI测试框架层出不穷,但是万变不离其宗,驱动PC浏览 ...
- ABP入门系列(1)——学习Abp框架之实操演练
作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...
- 旺财速啃H5框架之Bootstrap(五)
在上一篇<<旺财速啃H5框架之Bootstrap(四)>>做了基本的框架,<<旺财速啃H5框架之Bootstrap(二)>>篇里也大体认识了bootst ...
- Angular企业级开发(5)-项目框架搭建
1.AngularJS Seed项目目录结构 AngularJS官方网站提供了一个angular-phonecat项目,另外一个就是Angular-Seed项目.所以大多数团队会基于Angular-S ...
- Scrapy框架爬虫初探——中关村在线手机参数数据爬取
关于Scrapy如何安装部署的文章已经相当多了,但是网上实战的例子还不是很多,近来正好在学习该爬虫框架,就简单写了个Spider Demo来实践.作为硬件数码控,我选择了经常光顾的中关村在线的手机页面 ...
- 制作类似ThinkPHP框架中的PATHINFO模式功能
一.PATHINFO功能简述 搞PHP的都知道ThinkPHP是一个免费开源的轻量级PHP框架,虽说轻量但它的功能却很强大.这也是我接触学习的第一个框架.TP框架中的URL默认模式即是PathInfo ...
- 旺财速啃H5框架之Bootstrap(四)
上一篇<<旺财速啃H5框架之Bootstrap(三)>>已经把导航做了,接下来搭建内容框架.... 对于不规整的网页,要做成自适应就有点玩大了.... 例如下面这种版式的页面. ...
- 一起学 Java(三) 集合框架、数据结构、泛型
一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...
- Hibernatel框架关联映射
Hibernatel框架关联映射 Hibernate程序执行流程: 1.集合映射 需求:网络购物时,用户购买商品,填写地址 每个用户会有不确定的地址数目,或者只有一个或者有很多.这个时候不能把每条地址 ...
随机推荐
- Java中处理异常中return关键字
Java中,执行try-catch-finally语句需要注意: 第一:return语句并不是函数的最终出口,如果有finally语句,这在return之后还会执行finally(return的值会暂 ...
- 默认选中ComboBox的某一项
如: 让它选中“统计今天”(控件Name为cobListTime) 方法: 1.cobListTime.Text = cobListTime.Items[0].ToString();//默认选中第一个 ...
- 关于SQL Server的WITH(NOLOCK)和(NOLOCK)
The difference is that you should be using the syntax WITH (NOLOCK) (or WITH (<any table hint> ...
- [Xamarin.iOS] Visual Studio中Xamarin.iOS项目,无法加入PCL项目参考、NuGet组件参考
[Xamarin.iOS] Visual Studio中Xamarin.iOS项目,无法加入PCL项目参考.NuGet组件参考 解决方案 目前Visual Studio中最新版本的Xamarin.iO ...
- [Tool] Windows 8.1安装SQL Server
[Tool] Windows 8.1安装SQL Server 问题情景 因为工作的关系,需要在Windows 8.1.64Bit设备上安装SQL Server 2012.本来以为是个只要按下一步就可以 ...
- chenxi的html学习笔记
0.本文主体源自:http://www.cnblogs.com/coco1s/p/4034937.html,有兴趣的可以直接去那里看,也可以看看我整理加拓展的.1.浏览器内核: 1.ie:triden ...
- sap透明表、结构、簇介绍以及查找表方法
sap透明表.结构.簇介绍以及查找表方法 一些人在写开发功能说明书的时候不知道如何去找屏幕字段对应的透明表,下面我来介绍一个比较有效的方法:首先简单介绍一下概念:在SAP中的表的种类有以下三种:Tra ...
- arcgis andriod 长按获得当前信息
// 长按显示鼠标点坐标及比例尺 private class myLongPressListener implements OnLongPressListener { private static f ...
- Java.lang.OutOfMemoryError处理
此错误对于新手做项目的时候经常会发生,而且不容易处理 默认情况下,每个android程序的dailvik虚拟机的最大堆空间大小为16M 当加载的图片太多或图片过大时经常出现OOM问题 而出现此类问题最 ...
- 【读书笔记】iOS-防止通讯协议被轻易破解的方法
开发者可以选择类似Protobuf之类的二进制通讯协议或者自己实现通讯协议,对于传输的内容进行一定程度的加密,以增加黑客破解协议的难度. 参考资料: <iOS开发进阶> --唐巧