Hadoop主要由两大部分组成,一个是分布式文件系统即HDFS,另一个是分布式计算框架MapReduce。

关于HDFS详细介绍请参考:【Hadoop核心之HDFS 架构设计】

本篇重点介绍分布式计算框架MapReduce。在Hadoop的MapReduce框架中主要涉及到两个组件:JobTrackerTaskTracker(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架构设计相关推荐

  1. Hadoop核心之HDFS 架构设计

    概述:HDFS即Hadoop Distributed File System分布式文件系统,它的设计目标是把超大数据集存储到分布在网络中的多台普通商用计算机上,并且能够提供高可靠性和高吞吐量的服务.分 ...

  2. Hadoop技术内幕:深入解析MapReduce架构设计与实现原理 (大数据技术丛书) - 电子书下载(高清版PDF格式+EPUB格式)...

    Hadoop技术内幕:深入解析MapReduce架构设计与实现原理 (大数据技术丛书)-董西成著 在线阅读                   百度网盘下载(ihhy) 书名:Hadoop技术内幕:深 ...

  3. Hadoop技术内幕:深入解析MapReduce架构设计与实现原理

    <Hadoop技术内幕:深入解析MapReduce架构设计与实现原理> 基本信息 作者: 董西成 丛书名: 大数据技术丛书 出版社:机械工业出版社 ISBN:9787111422266 上 ...

  4. Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理

    <Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理> 基本信息 作者: 蔡斌 陈湘萍 出版社:机械工业出版社 ISBN:9787111417668 上架 ...

  5. 第三节 Hadoop学习案例——MapReduce课程设计 好友推荐功能

    提示:文章内容主要以案例为主 目录 前言 项目说明 一,程序需求 1.需求 2.数据 二,编码操作 1.项目建包目录 2.FriendsRecommend.java 3.FriendsRecommen ...

  6. 文件数据云计算学习笔记---Hadoop HDFS和MapReduce 架构浅析

    本文是一篇关于文件数据的帖子 媒介 Hadoop是一个基于Java的分布式麋集数据处理和数据分析的软件框架.Hadoop在很大程度上是受Google在2004年白皮书中论述的MapReduce技术的启 ...

  7. Google MapReduce架构设计

    前情回顾 Google MapReduce到底解决什么问题? Google MapReduce是Google产出的一个编程模型,同时Google也给出架构实现,它能够解决"能用分治法解决的问 ...

  8. 十全干货:核心游戏系统架构设计

    http://www.gameres.com/677342.html 文/AI分享站Finney 首先先来定义一下什么是我这里说的核心游戏系统,一般来说,游戏可以大致分为两个部分,一个部分是我这里指的 ...

  9. 一面数据: Hadoop 迁移云上架构设计与实践

    背景 一面数据创立于 2014 年,是一家领先的数据智能解决方案提供商,通过解读来自电商平台和社交媒体渠道的海量数据,提供实时.全面的数据洞察.长期服务全球快消巨头(宝洁.联合利华.玛氏等),获得行业 ...

最新文章

  1. 一行代码实现Okhttp,Retrofit,Glide下载上传进度监听
  2. 41 JavaScript中的闭包
  3. Android OpenGL ES 离屏渲染(offscreen render)
  4. 阿里云centos7通过yum安装 Mysql 8.0.11
  5. POJ 2286 The Rotation Game IDA*
  6. Python学习1——Python中的 split() 函数
  7. ORACLE复杂查询之连接查询
  8. iOS开发针对对Masonry下的FPS优化讨论
  9. 实战系列-IDEA中Spring MVC实现接口功能
  10. Pentium II Pentium III架构/微架构/流水线 (2) - P6详解 - 前端(指令预取/译码/动态分支预测静态分支预测)
  11. mysql xp系统时间_【Mysql5.5 XP系统下载】mysql XP系统安装图解
  12. 11. 判断是给属性前加typeof 可以同时判断属性是否存在
  13. 怎样在电脑上面简单的记账,了解账户收支
  14. 曾经优秀的人,怎么就突然不优秀了。
  15. 精品软件试用及分享 屏幕录像专家注册版 附下载地址
  16. 关于信息安全专业学习的一些看法
  17. python自然语言处理入门-新手上路
  18. Android IBinder的linkToDeath介绍
  19. KY59 神奇的口袋
  20. php办公oa系统带流程审批支持手机版wap源码

热门文章

  1. linux命令详解之df(6/19)
  2. Windows XP SP3细节官方详解
  3. Windows Server Update Service 3.0 配置向导
  4. 阿里内核月报2017年01月
  5. 看懂理解 keyboard中 , navigation的设置: 切换工作区和移动窗口到不同的工作区.
  6. hdu5651 xiaoxin juju needs help(逆元)
  7. JavaScript服务器端开发(函数实参对象arguments使用的几个注意事项)
  8. Storm实践2-【storm实时排序TopN】 - TOP10
  9. 像孙正义为了练英语坚决不说日语一样。我也应该有坚决不看中文文档的心!...
  10. 经典算法——合并两个有序单向链表