Hadoop核心之MapReduce架构设计
来源:互联网 发布:中拓互联 中文域名 编辑:程序博客网 时间:2024/05/01 20:54
Hadoop主要由两大部分组成,一个是分布式文件系统即HDFS,另一个是分布式计算框架MapReduce。
关于HDFS详细介绍请参考:【Hadoop核心之HDFS 架构设计】
本篇重点介绍分布式计算框架MapReduce。在Hadoop的MapReduce框架中主要涉及到两个组件:JobTracker和TaskTracker(HDFS中的组件是NameNode和DataNode),下面我们就分别看一下这两个组件。
TaskTracker
TaskTracker一个hadoop计算进程,运行在hadoop集群的datanode节点上。taskTracker的主要任务是运行JobTracker分配给它的实际计算任务,如运行Map、Reduce函数,当然也包括Shuffle过程。TaskTracker任务具体运行在一组slots上,slots的数量可以配置,一般slots的数量会配置成和这台机器的CPU核心数量一致。当TaskTracker收到JobTracker分配的一个task时,JobTracker会为这个task单独启动一个jvm进程,也就是说,每个map、reduce任务都会单独运行在一个jvm进程中(jvm也可以重用,这里不多做介绍)。TaskTracker被分配的task数量决定于当前还有多少个空闲的slots。TaskTracker在运行task的过程中会向JobTracker发送心跳信息,发送心跳出了要告诉JobTracker自己是否存活外,心跳信息中还包含当前空闲的slots数量等信息。
JobTracker
JobTracker进程的作用是运行和监控MapReduce的Job,当一个客户端向JobTracker提交任务时,过程如下图:
1. JobTracker接收Job请求2. JobTracker根据Job的输入参数向NameNode请求包含这些文件数据块的DataNode节点列表3. JobTracker确定Job的执行计划:确定执行此job的Map、Reduce的task数量,并且分配这些task到离数据块最近的节点上4. JobTracker提交所有task到每个TaskTracker节点。TaskTracker会定时的向JobTracker发送心跳,若一定时间内没有收到心跳,JobTracker就认为这个TaskTracker节点失败,然后JobTracker就会把此节点上的task重新分配到其它节点上5. 一旦所有的task执行完成,JobTracker会更新job状态为完成,若一定数量的task总数执行失败,这个job就会被标记为失败6. JobTracker发送job运行状态信息给Client端
关于Job执行过程的更详细的信息,请参考【 Hadoop工作机制】
- Hadoop核心之MapReduce架构设计
- [Hadoop] MapReduce架构设计
- [Hadoop] MapReduce架构设计
- Hadoop:MapReduce架构设计
- Hadoop--Hadoop核心之MapReduce
- Hadoop核心之HDFS 架构设计
- Hadoop核心之HDFS 架构设计
- Hadoop核心之HDFS 架构设计
- Hadoop核心模块之MapReduce
- 我是菜鸟:hadoop之mapreduce设计理念和基本架构
- hadoop初识之mapreduce架构
- [学习笔记]Hadoop核心之初始MapReduce
- Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
- Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
- Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
- Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
- Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
- Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
- Android APP: BlackContact 短信拦截
- WSOP欧洲赛在德国柏林开战
- java线程第六课:同步锁Lock
- C++ Effective_03
- 滑动返回类库SwipeBackLayout的使用问题,解决返回黑屏,和看到桌面
- Hadoop核心之MapReduce架构设计
- C语言的数组的介绍
- 五种方法查看Ubuntu-Redhat等Linux系统版本号等系统信息
- R语言学习之环境和函数的认识与应用
- 用思维导图展示测试框架/方法
- ubuntu14.04安装docker及升级docker
- hive操作(四)
- GO语言教程(一)Windows下Go的安装, 以及HelloWorld
- kali 2.0 安装之后的设置 一