YARN-MapReduce的作业提交流程
YARN分布式资源管理系统

组成:
ResourceManager:YARN的资源管理器,主节点,通过NodeManager管理集群中所有的资源
NodeManager:YARN的节点管理器,从节点,通过container管理资源,一个dataNode对应一个NodeManager
Container:包装资源,CPU/内存/IO
容器:最小的资源单位,1GB内存,一个虚拟核心
Master:协调MapReduce作业中任务的运行
Application Master和MapReduce任务运行于容器中,这些容器由ResourceManager调度,由nodemanager管理
yarn工作流程
1.client端向ResourceManager提交应用程序, 也就是client端会将 jar包,配置文件,切片等数据上传到hdfs上的某路径下;
2. resourceManager将此应用程序添加到任务队列中;
3. 等待资源充沛时, resourceManager为该应用程序分配第一个container,在这个container中启动应用程序的ApplicationMaster;
4. ApplicationMaster首先向ResourceManager注册,用户可以直接通过ResourceManager查看应用程序的运行状态, 还会进行分片等工作, 之后向ResourceManager申请运行任务所需的资源;
5. ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请和领取资源, 发送命令让NodeManager创建container, 之后执行task;
6. ApplicationMaster监控job执行作业, 必要时候进行容错处理, 直到ApplicationMaster检测到job完成后, 向ResourceManager通知, 注销自己
作业提交流程

1.取号,向resourcemanager申请一个新的application ID,用于MapReduce作业的ID
2.检查作业的输出,如果没有指定输出或者路径已经存在(路径存在时会覆盖),则不提交作业,并且抛出异常
3.检查作业的输入并计算输入切片,如果不能计算切片(如:输入路径不存在等),不提交作业,抛出异常
4.拷贝jar包,配置文件,计算好的切片到共享文件系统的以作业ID命名的目录中,作业的jar包默认副本数量为10,nademanager如果运行作业中的任务时,会有很多副本可以访问
5.调用resourcemanager的submitApplication方法提交作业
6.resourcemanager挑选一台NodeManager,该NodeManager分配容器(Container)并在此容器上启动application master进程,读取客户端上传的资源,并计算需要多少map任务和reduce任务,向resourceManager为map任务申请资源
reduce任务可以运行于集群中的任意位置,而map任务会有本地读取数据的限制。
7.当map任务的完成度达到百分之五的时候,再向resourceManager为reduce任务申请资源
8.所有的reduce任务运行完成之后,MRAppMaster会通知客户端作业完成。

YARN-MapReduce的作业提交流程的更多相关文章
- YARN作业提交流程剖析
YARN(MapReduce2) Yet Another Resource Negotiator / YARN Application Resource Negotiator对于节点数超出4000的大 ...
- Spark运行架构及作业提交流程
1.yarn-cluster模式: (1)client客户端提交spark Application应用程序到yarn集群. (2)ResourceManager收到了请求后,在集群中选择一个NodeM ...
- Hadoop2.x Yarn作业提交(客户端)
转自:http://blog.csdn.net/lihm0_1/article/details/22186833 YARN作业提交的客户端仍然使用RunJar类,和MR1一样,可参考 http://b ...
- YARN(MapReduce 2)运行MapReduce的过程-源码分析
这是我的分析,当然查阅书籍和网络.如有什么不对的,请各位批评指正.以下的类有的并不完全,只列出重要的方法. 如要转载,请注上作者以及出处. 一.源码阅读环境 需要安装jdk1.7.0版本及其以上版本, ...
- hadoop2.7之作业提交详解(上)
根据wordcount进行分析: import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; impo ...
- MapReduce简述、工作流程及新旧API对照
什么是MapReduce? 你想数出一摞牌中有多少张黑桃.直观方式是一张一张检查而且数出有多少张是黑桃. MapReduce方法则是: 1. 给在座的全部玩家中分配这摞牌. 2. 让每一个玩家数自己手 ...
- Spark:三种任务提交流程standalone、yarn-cluster、yarn-client
spark的runtime参考:Spark:Yarn-cluster和Yarn-client区别与联系浪尖分享资料 standalone Spark可以通过部署与Yarn的架构类似的框架来提供自己的集 ...
- MapReduce源码分析之新API作业提交(二):连接集群
MapReduce作业提交时连接集群是通过Job的connect()方法实现的,它实际上是构造集群Cluster实例cluster,代码如下: private synchronized void co ...
- 4 weekend110的YARN的通用性意义 + yarn的job提交流程
Mr程序写完之后,提交给yarn,yarn会产生一个MRAppMaster,想说的是,yarn变得很 通用,yarn集群上,不光可以跑mr程序,还可以跑各种运算模型. 海量批处理,mapreduce ...
随机推荐
- 实战:xfs文件系统的备份和恢复
概述 XFS提供了 xfsdump 和 xfsrestore 工具协助备份XFS文件系统中的数据.xfsdump 按inode顺序备份一个XFS文件系统. centos7选择xfs格式作为默认文件系统 ...
- vue知识点10
今天彻底掌握了如下: 1.解决回调地狱三种方案 callback async await Promise 2.中间件(middleware) express.static ...
- python numpy输出排名
python numpy排序后输出排名 问题: 假设某班的成绩为: 姓名 成绩 名次 小红 95 小黑 67 小白 58 小绿 82 小蓝 76 小橙 79 小可爱 99 请根据表格,输出对应的名次 ...
- 记一次JFormDesigner破解问题idea版本号2020.2.2
第一步: 首先idea 2020.2.2下载插件JFormDesigner插件(软件版本7.0.1); 第二步:下载注册机(以上两步软件打包 在百度云) 第三步:点击 redister注册 第四步:打 ...
- 使用TLSharp进行Telegram中遭遇循环体内报session.dat文件被占用时解决方式一例
背景 公司做Telegram开发,.net Framework项目,调用TLSharp作为框架进行开发. 开发需求是读取群里新到达的信息并进行过滤. 由此不可避免得要用到 TLSharp.Core.T ...
- find for /f 分割字符串 bat
@Echo off::总用例数For /f "tokens=2" %%i in ('Type bat.txt^|Find "Ran"') do (Echo %% ...
- 梯度vs Jacobian矩阵vs Hessian矩阵
梯度向量 定义: 目标函数f为单变量,是关于自变量向量x=(x1,x2,-,xn)T的函数, 单变量函数f对向量x求梯度,结果为一个与向量x同维度的向量,称之为梯度向量: 1. Jacobian 在向 ...
- 【转】Extension Libraries and Loading Other Image Formats
FROM: http://lazyfoo.net/tutorials/SDL/06_extension_libraries_and_loading_other_image_formats/index. ...
- JAVA类库之——Character类(持续更新)
Character 类 目录 Character 类 判断该字符是不是一个数字的方法:isDigit(ch) 判断该字符是不是一个字母的方法:isLetter(ch) 判断该字符是不是一个数字或字母的 ...
- Java学习的第二十六天
1.过滤处理流 DataOutputStream输入数据 用DataInputStream读数据 2.方法太多记不清 3.明天学习内存操作流和缓冲流