一.MapReduce概述
&源自于Google的MapReduce论文,论文发表于2004年12月
&Hadoop MapReduce是Google MapReduce的克隆版
&MapReduce优点:海量数据李先处理&易开发&易运行
&MapReduce缺点:实时流式计算

Hadoop MapReduce is a software framework for easily writing applications which process vast amounts of data (multi-terabyte data-sets) in-parallel on large clusters (thousands of nodes) of commodity hardware in a reliable, fault-tolerant manner.
Hadoop MapReduce是一个软件框架,用于轻松编写应用程序,这些应用程序以可靠的、容错的方式并行处理大量数据(多tb数据集),这些数据位于大型集群(数千个节点)上,集群由普通硬件组成。

MapReduce编程模型之通过wordcount词频统计分析

MapReduce编程模型之Map和Reduce阶段
&将作业拆分成Map阶段和Reduce阶段

&Map阶段:Map Tasks
源码标注:Maps input key/value pairs to a set of intermediate key/value pairs.

&Reduce阶段:Reduce Tasks
源码标注:Reduces a set of intermediate values which share a key to a smaller set of
values.

二.MapReduce编程模型之执行步骤
&准备map处理的输入数据
&Mapper处理
&shuffle
&Reduce 处理
&结果输出

如图所示,假设有两个节点,有两个机器进行分布式的计算。
1.Files loaded from local HDFS stores(文件从本地的HDFS上加载,HDFS上有很多的files,一个files可能对应多个block,多个block以副本的方式存储在文件系统之上),Mapper要处理的文件是从文件系统上读进来的,这个读是用了一个核心的概念InputFormat:

InputFormat源码标注:
The Hadoop Map-Reduce framework spawns one map task for each
{@link InputSplit} generated by the {@link InputFormat} for the job.

Hadoop map - reduce框架为每个map生成一个map任务,{@link InputSplit}由{@link InputFormat}为作业生成。

由此可见InputFormat这是一个抽象类,InpuFormat的源代码是需要好好看看的,因为后续的Spark,Flink都可能会用到这个东西

2.进行切分文本Split,如图把文件切成三块。
3.然后RR(RecordReader)把数据读进来。
4.之后进行map,在进到map之前是一个(Key,Value),出来的时候如图所示是一个临时的KV对即图中Intermediate(k,v) pairs 。
5.之后可以看到图中的分区函数Partitioner,Partitioner的作用就是对map端输出的数据key作一个散列,使数据能够均匀分布在各个reduce上进行后续操作,避免产生热点区。左右两个节点的一个联合的Shuffle的过程。
6.然后重新排序sort。
7.输出reduce,得到一个最终的key,value即final(k,v)pairs 。
8.进来的时候有InputFormat,所以出去的时候OutputFormat可将数据写回HDFS文件系统即图中的Writeback to local HDFSstore。其中shuffle过程十分重要后续文章来详细分解。

三.MapReduce编程模型之核心概念
&Split
&InputFormat
&OutputFormat
&Combiner
&Partitioner
基本流程以及了解 后续会再来代码详解

Hadoop分布式计算框架MapReduce相关推荐

  1. Hadoop技术(二)资源管理器YARN和分布式计算框架MapReduce

    资源管理器YARN和分布式计算框架MapReduce 第一章 Hadoop MapReduce 是什么 一 MapReduce 介绍 1. 基本介绍 2. MR数据流程方向 3. MR 原语/ 核心思 ...

  2. 【大数据入门笔记系列】第六节 分布式计算框架MapReduce的工作流程

    [大数据入门笔记系列]第六节 分布式计算框架MapReduce的工作流程 前言 MapReduce分布式运算 MapReduceApplication MapTask ReduceTask split ...

  3. 【MapReduce】分布式计算框架MapReduce

    分布式计算框架MapReduce 什么是MapReduce? MapReduce起源是2004年10月Google发表了MapReduce论文,之后由Mike Cafarella在Nutch(爬虫项目 ...

  4. 分布式计算框架——MapReduce

    一.MapReduce概述 Hadoop MapReduce 是一个分布式计算框架,用于编写批处理应用程序.编写好的程序可以提交到 Hadoop 集群上用于并行处理大规模的数据集. MapReduce ...

  5. 大数据理论与实践5 分布式计算框架MapReduce和Spark

    MapReduce和Spark MapReduce 简介 原理示例 基本概念 作业运行模式 Spark 简介 概念 编程模型 RDD RDD操作(Operator) RDD依赖(Dependency) ...

  6. 分布式计算框架MapReduce架构

    Hadoop核心由HDFS和MapReduce组成,HDFS负责分布式存储,MapReduce负责分布式计算. MapReduce最早是由Google研究提出的一种面向大规模数据处理的并行计算模型和方 ...

  7. Hadoop大数据原理(3) - 分布式计算框架MapReduce

    文章目录 1. 大数据的通用计算 2 MapReduce编程模型 3. MapReduce计算框架 3.1 三类关键进程 大数据应用进程 JobTracker进程 TaskTracker进程 3.2 ...

  8. 2.Hadoop 分布式计算框架:Mapreduce(扩展)——Yarn资源调度器

    2.Yarn资源调度器 2.3 YARN resourcemanager-HA搭建 2.3.1 文档查看与集群规划 RM高可用官方网址: http://hadoop.apache.org/docs/r ...

  9. 史上最快! 10小时大数据入门实战(五)-分布式计算框架MapReduce

    目录 1 MapReduce概述 2 MapReduce编程模型之通过wordcount词频统计分析案例入门 MapReduce执行流程 InputFormat OutputFormat Output ...

最新文章

  1. 程序猿惯用口头禅与内心真实 OS,快来看看你中招没?
  2. python读取dat数据anaconda_基于python的大数据分析-pandas数据读取(代码实战)
  3. 1.3. redis-cli - Command-line client to redis-server
  4. 微众WeCross 跨链平台(10)使用场景
  5. 警告!你的Python代码命名太烂了,命令你熟读本篇迷你命名指南!
  6. Institute for Manufacturing virtual check in part 1
  7. 远控免杀专题(18)-ASWCrypter免杀
  8. 前端学习(1696):前端系列javascript之class和继承
  9. java递归遍历目录文件
  10. linux循环控制结构,Linux Shell 之 Shell 基本控制结构(二)(循环结构)
  11. 28. 智慧医疗--AI将成为医生的好帮手
  12. android开发图片格式,Android程序开发如何处理图像格式类及图像转换
  13. 仿百度外卖的酷炫水波纹效果
  14. 你知道 JavaScript 中的 Arguments 对象都有哪些用途吗?
  15. db4o发布7.2,出现.NET 3.5版本,支持LINQ
  16. python 绘图英文字体_Matplotlib 中英文及公式字体设置
  17. 数字图像处理技术与应用练习题
  18. 必做作业三_ShareX结构化原型设计
  19. 手机测试人员的思维过程
  20. 安卓机用什么无线蓝牙耳机好?适合安卓机的蓝牙耳机推荐

热门文章

  1. 华理c语言设计网上作业,华理网上作业 之 大学英语预备
  2. 为什么说期货交易者依靠程序化交易系统接口才能获得成功
  3. 2021-07-06 黑盒测试(持续更新)
  4. 详解“辗转相除法”(如何求最大公约数)
  5. 万能  随机森林回归 补缺函数
  6. FastDFS 系统架构和功能原理
  7. pacemaker+corosync 搭建一主两从PG集群
  8. python3 + Scrapy爬虫学习之创建项目
  9. bm24 bm25 sql 22 sql 24
  10. C语言中fscanf()函数的用法介绍