MapReduce 的体系结构

来源:互联网 发布:sqlserver免费版 编辑:程序博客网 时间:2024/06/10 07:39
一 MapReduce体系结构特点
1 分布式编程架构
2 以数据为中心,更看重吞吐率
3 分而治之
4 Map将一个任务分解成多个子任务
5 Reduce将分解后多个子任务分别处理,并将结果汇总为最终结果

二 相关举例
1 清点图书馆藏书
2 统计单词出现次数
3 混合辣椒酱的生成过程

三 MapReduce体系结构

四 基本概念
1 作业(Job)
2 任务(Task)
3 键值对(key/value pair)
Map(),Reduce()函数的输入/输出都是<key,value>的形式

五 生命周期
1 提交作业
在作业提交之前,需要对作业进行配置
程序代码,主要是自己编写的MapReduce程序
配置输入输出路径/输出是否压缩
配置完成后,通过Jobclient来提交

2 作业调度
FIFO调度器
公平调度器
容量调度器

3 任务分配
TaskTracker和JobTracker之间的通信与任务分配是通过心跳机制完成。
TaskTracker会主动向JobTracker询问是否有作业要做,如果自己可以做,那么就会申请到作业任务,这个任务可以使是Map任务也可以是Reduce任务

4 任务执行
拷贝代码到本地
拷贝任务的信息到本地
启动JVM运行任务

5 状态更新
任务在运行过程中,首先会将自己的状态汇报给TaskTracker,然后由TaskTracker汇总告知JobTracker
任务进度通过计数器来实现
JobTracker是在接受到最后一个任务运行完成后,才将作业标志为成功
作业成功后执行删除中间结果等善后处理工作
原创粉丝点击