博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
好程序员大数据分享MapReduce中job的提交流程
阅读量:6257 次
发布时间:2019-06-22

本文共 1124 字,大约阅读时间需要 3 分钟。

  hot3.png

好程序员大数据分享MapReduce中job的提交流程

一、MapReduce的定义

MapReduce是面向大数据并行处理的计算模型、框架和平台。

它的主要思想是:map(映射)和reduce(归约)

1)MapReduce是一个基于集群的高性能并行计算平台

2)MapReduce是一个并行计算与运行软件框架

3)MapReduce是一个并行程序设计模型与方法

二、 MapReduce的主要功能:

二、MapReduce的主要功能

1)数据划分和计算任务调度

2)数据/代码互定位

3)系统优化

4)出错检测和恢复

三、计算任务中job的提交流程

在学到这的时候,我们会面临一些问题:

1)首先面临的问题就是数据是如何分布的?

2)一个超大文件按照那种方式切割下来,分别丢到不同的机器上?

3)按照某种方式切割下来后,是如何丢到不同机器上去的?

4)某个机器分配到什么任务?如何分配的?

5)拿到任务后如何解决的?

带着这些问题,我们就需要学习一下job的提交流程,从该流程中去寻找我们问题的答案。

Job的具体提交流程,我们用文字概括如下:

1、客户端提交job到resourcemanager(rm)。

2、rm将其放到等待队列,返回jobid和文件路径信息。

3、客户端将所需要计算的资源,上传到hdfs上(包括job信息和分片信息)的存储路径。

4、客户端给rm返回一个资源准备好的信息,job放入等待队列,告诉他可以启动job,等待rm进行调度。

5、rm在调度之前,申请一个资源nodemanager(nm),nm启动container,它接收到任务到hdfs上将资源获取到container,然后跟客户端交互已经得到需要计算的资源,客户端向其发送启动applicationmaster(am)的命令。

6、am启动起来后,通过解析分片信息向rm申请运算资源(maptask)。

7、rm收到信息查看nm资源情况,通过负载均衡分配所需要的机器,nm每一次心跳都会从job的描述信息查询自己所分配到的任务,接收到任务消息的机器会从hdfs上拿取计算资源,然后跟am交互,am发送启动maptask的命令。

8、Maptask结束后,通知am,然后释放maptask资源,am向rm发出信息,申请reducetask的资源。

9、rm分配资源,am启动reducetask。

10、reducetask收集maptask完成的数据,启动reduce逻辑。执行完成后,通知am,然后释放reducetask的资源。am通知rm。am释放资源。

转载于:https://my.oschina.net/530504/blog/3058818

你可能感兴趣的文章
HTML5为输入框添加语音输入功能
查看>>
[LeetCode] Find Permutation 找全排列
查看>>
os.environ() 说明
查看>>
Python学习札记(二十) 函数式编程1 介绍 高阶函数介绍
查看>>
tomcat安装不成功.提示:failed to install tomcat6 service ,check your setting and permissions
查看>>
[转]当当网高可用架构之道--转
查看>>
ROS学习网址【原创】
查看>>
mysql数据库对时间进行默认的设置
查看>>
喵哈哈村的魔法考试 Round #3 (Div.2) 题解
查看>>
音频 API 一览
查看>>
hive的select重命名字段显示成中文
查看>>
JVM类加载机制与对象的生命周期
查看>>
zabbix主动被动模式说明/区别
查看>>
神奇的AC
查看>>
数据库防火墙——实现数据库的访问行为控制、危险操作阻断、可疑行为审计...
查看>>
PCIE_DMA实例一:xapp1052详细使用说明
查看>>
MySQL也有潜规则 – Select 语句不加 Order By 如何排序?
查看>>
Struts(二十八):自定义拦截器
查看>>
安装Jenkins getting started卡住
查看>>
金软PDF转换(x-PDFConper)
查看>>