Hadoop MapReduce是一个软件框架,基于该框架能够容易地编写应用程序,这些应用程序能够运行在由上千个商用机器组成的大集群上,并以一种可靠的,具有容错能力的方式并行地处理上TB级别的海量数据集。

软件框架如下图所示:

Client:用户编写的Mapreduce程序通过Client端提交给JobTracker端;Client还提供一些查看作业运行状态的接口

JobTracker:主要负责资源监控和作业调度。JobTracker监控所有TaskTracker与作业的健康状态,一旦发现失败情况后,其会将相应的任务转移到其他节点;同时JobTracker会跟踪任务执行进度、资源使用量等信息,并将这些信息告诉任务调度器,而调度器会在资源出现空闲的时候,选择合适的任务使用这些资源。

TaskTracker:TaskTracker会周期性地通过心跳包的形式将本节点上资源的使用情况和任务的运行进度进行汇报给JobTracker,同时接受JobTraker发送过来的命令并执行相应的操作(启动新任务、杀死任务等)

Task分为Map Task和Reduce Task两种,均由TaskTracker启动。

Map Task执行流程

Reduce Task执行流程

MapReduce作业执行过程

作业执行的生命周期如图所示:

步骤1:作业提交与初始化。用户提交作业后,JobClient实例会将作业相关信息,比如jar包、作业配置文件、分片元信息文件上传到分布式文件系统。然后JobClient通过RPC通知JobTracker。JobTracker收到新的提交请求后,由作业调度模块对作业进行初始化:JobInProgress的创建,跟踪每个任务的运行情况。

步骤2:任务监控与调度。由TaskTracker来完成,以HeartBeat的形式发送本机的运行状态。

步骤3:任务运行环境准备。运行环境的准备包括JVM启动和资源隔离,均由TaskTracker实现。TaskTracker为每个Task启动一个独立的JAVM以避免不同Task在运行过程中相互影响。

步骤4:任务执行。运行过程中的实时进度均由TaskTracker进行汇报。

步骤5:作业完成。

MapReduce编程接口

MapReduce编程接口体系如图所示:

下面对主要的编程接口进行介绍

InputFormat

主要完成功能:

1、逻辑分片

2、将输入的分片解析成若干key/value对

InputSplit[] getSplits(JobConf job, int numSplits) throws IOException;

RecordReader<K, V> getRecordReader(InputSplit split, JobConf job, Reporter reporter) throws IOException;

}

OutPutFormat

主要完成功能:

1、检查输出目录是否合法

2、将reduce输出写入文件。

RecordWriter<K, V> getRecordWriter(FileSystem ignored, JobConf job

String name, Progressable progress)

throws IOException;

void checkOutputSpecs(FileSystem ignored, JobConf job) throws IOException;

}

Partitioner

Mapreduce框架提供了两个Partitioner实现:HashPartitioner和TotalOrderPatitioner。

int getPartition(K2 key, V2 value, int numPartitions);

Hadoop MapReduce框架介绍相关推荐

  1. Hadoop mapreduce框架简介

    传统hadoop MapReduce架构(老架构) 从上图中可以清楚的看出原 MapReduce 程序的流程及设计思路: 1.首先用户程序 (JobClient) 提交了一个 job,job 的信息会 ...

  2. hadoop Mapreduce组件介绍

    MapReduce原理 MapRedcue采用'分而治之'的思想,对大规模数据集的操作,分发给一个主节点下的各个分节点共同完成,然后通过整合各个节点的中间结果,得到最终结果.Mapreduce就是任务 ...

  3. Hadoop大家族框架介绍

    转载请注明出处: http://blog.fens.me/hadoop-family-roadmap/ Hadoop家族产品 截止到2013年,根据cloudera的统计,Hadoop家族产品已经达到 ...

  4. Hadoop 新 MapReduce 框架 Yarn 详解

    Hadoop MapReduceV2(Yarn) 框架简介 原 Hadoop MapReduce 框架的问题 对于业界的大数据存储及分布式处理系统来说,Hadoop 是耳熟能详的卓越开源分布式文件存储 ...

  5. 传统MapReduce框架

    传统的MapReduce框架是google于2004年在论文:"MapReduce: Simplified Data Processing on Large Clusters"提出 ...

  6. 《Hadoop与大数据挖掘》——2.6 TF-IDF算法原理及Hadoop MapReduce实现

    本节书摘来自华章计算机<Hadoop与大数据挖掘>一书中的第2章,第2.6节,作者 张良均 樊哲 位文超 刘名军 许国杰 周龙 焦正升,更多章节内容可以访问云栖社区"华章计算机& ...

  7. 《Hadoop MapReduce性能优化》一1.3 Hadoop MapReduce的工作原理

    本节书摘来异步社区<Hadoop MapReduce性能优化>一书中的第1章,第1.3节,作者: [法]Khaled Tannir 译者: 范欢动 责编: 杨海玲,更多章节内容可以访问云栖 ...

  8. HCE:提升资源利用率的MapReduce框架

    文/杨栋 Hadoop系统提供了MapReduce计算框架的开源实现,像Yahoo!.Facebook.淘宝.中移动.百度.腾讯等公司都在借助Hadoop进行海量数据处理.Hadoop系统性能不仅取决 ...

  9. 五种基于 MapReduce 的并行计算框架介绍及性能测试

    并行计算模型和框架 目前开源社区有许多并行计算模型和框架可供选择,按照实现方式.运行机制.依附的产品生态圈等可以被划分为几个类型,每个类型各有优缺点,如果能够对各类型的并行计算框架都进行深入研究及适当 ...

最新文章

  1. 最近在招标中评审出一个政府信息化软件
  2. Dojo学习笔记(六):dojo/_base/declare
  3. 重构:一项常常被忽略的基本功
  4. python手机端下载-Python3,x:如何进行手机APP的数据爬取
  5. 2017-2018-1 20155230 《信息安全系统设计基础》第二周课堂实验
  6. [转载]HTTP PUSH技术原理,结合ASP.NET实现以及评述
  7. 一个十年SAP CRM老司机对产品主数据的理解
  8. Linux 命令之 sudo -- 以其他用户身份来执行命令
  9. 一篇文章为你深度解析HTTPS 协议
  10. Android service Binder用法
  11. 海思Hi3716C多媒体芯片规格书介绍
  12. 二、建模及画网格软件推荐
  13. c语言从入门到放弃(初识)
  14. dcdc转换器计算机显示,DC-DC转换器的问题
  15. ANC降噪蓝牙耳机软件工程的数学原理
  16. 计算机u口保护,U盘写保护怎么办?
  17. java下载支付宝对账单,实现与支付宝实收对账和日清日结对账
  18. 单元测试总结反思_单元测试小反思200字
  19. 【数据架构系列-02】从《数据中台能力成熟度模型》的发布,聊聊火了的中台
  20. python写excel文件不覆盖_如何写入现有的Excel文件而不覆盖数据(使用pandas)?...

热门文章

  1. 大厂前端面试题总结(浏览器)
  2. 8.12~8.21 学习记录
  3. VBA基础语法:取整函数
  4. c语言编程师照片,C语言编程师工作简历范文
  5. Linux基本命令的使用
  6. JAVAWeb学习笔记2020/5/6——HTML课堂笔记
  7. linux(debian10)安装pip3方法,并修改安装源为国内源
  8. 2400万双摄+AI智能语音:可以拍星星的小钢炮又升级啦
  9. android alertdialog 样式,设置AlertDialog的列表样式
  10. 因奸杀事件,滴滴APP在下载排行榜跌至61位,会凉凉吗?