Hadoop分布式计算框架MapReduce
一.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相关推荐
- Hadoop技术(二)资源管理器YARN和分布式计算框架MapReduce
资源管理器YARN和分布式计算框架MapReduce 第一章 Hadoop MapReduce 是什么 一 MapReduce 介绍 1. 基本介绍 2. MR数据流程方向 3. MR 原语/ 核心思 ...
- 【大数据入门笔记系列】第六节 分布式计算框架MapReduce的工作流程
[大数据入门笔记系列]第六节 分布式计算框架MapReduce的工作流程 前言 MapReduce分布式运算 MapReduceApplication MapTask ReduceTask split ...
- 【MapReduce】分布式计算框架MapReduce
分布式计算框架MapReduce 什么是MapReduce? MapReduce起源是2004年10月Google发表了MapReduce论文,之后由Mike Cafarella在Nutch(爬虫项目 ...
- 分布式计算框架——MapReduce
一.MapReduce概述 Hadoop MapReduce 是一个分布式计算框架,用于编写批处理应用程序.编写好的程序可以提交到 Hadoop 集群上用于并行处理大规模的数据集. MapReduce ...
- 大数据理论与实践5 分布式计算框架MapReduce和Spark
MapReduce和Spark MapReduce 简介 原理示例 基本概念 作业运行模式 Spark 简介 概念 编程模型 RDD RDD操作(Operator) RDD依赖(Dependency) ...
- 分布式计算框架MapReduce架构
Hadoop核心由HDFS和MapReduce组成,HDFS负责分布式存储,MapReduce负责分布式计算. MapReduce最早是由Google研究提出的一种面向大规模数据处理的并行计算模型和方 ...
- Hadoop大数据原理(3) - 分布式计算框架MapReduce
文章目录 1. 大数据的通用计算 2 MapReduce编程模型 3. MapReduce计算框架 3.1 三类关键进程 大数据应用进程 JobTracker进程 TaskTracker进程 3.2 ...
- 2.Hadoop 分布式计算框架:Mapreduce(扩展)——Yarn资源调度器
2.Yarn资源调度器 2.3 YARN resourcemanager-HA搭建 2.3.1 文档查看与集群规划 RM高可用官方网址: http://hadoop.apache.org/docs/r ...
- 史上最快! 10小时大数据入门实战(五)-分布式计算框架MapReduce
目录 1 MapReduce概述 2 MapReduce编程模型之通过wordcount词频统计分析案例入门 MapReduce执行流程 InputFormat OutputFormat Output ...
最新文章
- 程序猿惯用口头禅与内心真实 OS,快来看看你中招没?
- python读取dat数据anaconda_基于python的大数据分析-pandas数据读取(代码实战)
- 1.3. redis-cli - Command-line client to redis-server
- 微众WeCross 跨链平台(10)使用场景
- 警告!你的Python代码命名太烂了,命令你熟读本篇迷你命名指南!
- Institute for Manufacturing virtual check in part 1
- 远控免杀专题(18)-ASWCrypter免杀
- 前端学习(1696):前端系列javascript之class和继承
- java递归遍历目录文件
- linux循环控制结构,Linux Shell 之 Shell 基本控制结构(二)(循环结构)
- 28. 智慧医疗--AI将成为医生的好帮手
- android开发图片格式,Android程序开发如何处理图像格式类及图像转换
- 仿百度外卖的酷炫水波纹效果
- 你知道 JavaScript 中的 Arguments 对象都有哪些用途吗?
- db4o发布7.2,出现.NET 3.5版本,支持LINQ
- python 绘图英文字体_Matplotlib 中英文及公式字体设置
- 数字图像处理技术与应用练习题
- 必做作业三_ShareX结构化原型设计
- 手机测试人员的思维过程
- 安卓机用什么无线蓝牙耳机好?适合安卓机的蓝牙耳机推荐