MapReduce示例式理解

从word count这个实例理解MapReduce。

MapReduce大体上分为六个步骤:input, split, map, shuffle, reduce, output。细节描述如下:

输入(input):如给定一个文档,包含如下四行:
Hello Java
Hello C
Hello Java
Hello C++
2. 拆分(split):将上述文档中每一行的内容转换为key-value对,即:

0 - Hello Java
1 - Hello C
2 – Hello Java
3 - Hello C++
3. 映射(map):将拆分之后的内容转换成新的key-value对,即:

(Hello , 1)
(Java , 1)
(Hello , 1)
(C , 1)
(Hello , 1)
(Java , 1)
(Hello , 1)
(C++ , 1)
4. 派发(shuffle):将key相同的扔到一起去,即:

(Hello , 1)
(Hello , 1)
(Hello , 1)
(Hello , 1)
(Java , 1)
(Java , 1)
(C , 1)
(C++ , 1)
注意:这一步需要移动数据,原来的数据可能在不同的datanode上,这一步过后,相同key的数据会被移动到同一台机器上。最终,它会返回一个list包含各种k-value对,即:

{ Hello: 1,1,1,1}
{Java: 1,1}
{C: 1}
{C++: 1}
5. 缩减(reduce):把同一个key的结果加在一起。如:

(Hello , 4)
(Java , 2)
(C , 1)
(C++,1)
6. 输出(output): 输出缩减之后的所有结果。

MapReduce的思想:

重要的是Shuffle:

来自知乎 峰峰 https://www.zhihu.com/question/23345991/answer/223113502

原文地址:https://www.cnblogs.com/jeshy/p/11197112.html

时间: 2024-10-03 06:44:41

MapReduce示例式理解的相关文章

傻瓜式理解递归之php递归

写程序这么久了,有时候别人会问道一些算法比如排序啊,递归啊,总是不知道该怎么去说,今天就来整理一下,让更多的人去傻瓜式的理解递归.递归在网络上有很多定义,但有这么一句话听的最多:递归就是自己调用自己!引用百科的一个故事去理解: 从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?"从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?'从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?--'" 这样的故事是不是在做

MapReduce示例-气象站

MaxTemperature.java package cn.kissoft.hadoop.week05; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.lib.input.Fi

Hadoop MapReduce链式实践--ChainReducer

版本:CDH5.0.0,HDFS:2.3.0,Mapreduce:2.3.0,Yarn:2.3.0. 场景描述:求一组数据中按照不同类别的最大值,比如,如下的数据: data1: A,10 A,11 A,12 A,13 B,21 B,31 B,41 B,51 data2: A,20 A,21 A,22 A,23 B,201 B,301 B,401 B,501 最后输出为: A,23 B,501 假如这样的逻辑的mapreduce数据流如下: 假设C组数据比较多,同时假设集群有2个节点,那么这个任

运行 Hadoop 的 MapReduce 示例卡住了【已解决】

1. 说明 在以伪分布式模式运行 Hadoop 自带的 MapReduce 示例,卡在了 Running job ,如图所示 2. 解决过程 查看日志没得到有用的信息 再次确认配置信息没有错误信息 最终修改了 hosts 添加本机的 hosts ,如下 192.168.23.101 s101 重新将 SSH 进行配置,最终修改了 SSH 远程登陆配置笔记. 再次运行示例,程序顺利运行. 原文地址:https://www.cnblogs.com/share23/p/9696070.html

MapReduce的一点理解

对于MapReduce编程,大概率的流程用过的人或多或少都清楚,但是归结到细节上,就有的地方不清楚了,下面根据自己的疑问,加上从网上各处,找到的被人的描述,最自己的疑问做出回答. 1. MapReduce 和 HDFS有什么关系? 首先,HDFS和MapReduce是Hadoop最核心的设计: 对于HDFS,即Hadoop Distributed File System,它是Hadoop的存储基础,是数据层面的,提供海量的数据存储:而MapReduce,则是一种引擎或者编程模型,可以理解为数据的

一个简单的MapReduce示例(多个MapReduce任务处理)

一.需求 有一个列表,只有两列:id.pro,记录了id与pro的对应关系,但是在同一个id下,pro有可能是重复的. 现在需要写一个程序,统计一下每个id下有多少个不重复的pro. 为了写一个完整的示例,我使用了多job! 二.文件目录 |- OutCount //单Job的,本次试验没有使用到,这里写出来供参考 |- OutCount2 |- OutCountMapper |- OutCountMapper2 |- OutCountReduce |- OutCountReduce2 三.样本

【大数据系列】MapReduce示例好友推荐

package org.slp; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Mapper; import java.io.IOException; import java.util.StringTokenizer; /** * Created by sanglp on 2017/7/17. */ public clas

Hadoop-2.6.0分布式单机环境搭建HDFS讲解Mapreduce示例

Hadoop安装使用 1.1 Hadoop简介 1.2 HDFS分布式存储系统 1.3 单机安装 1.4 Mapreduce 案例 1.5 伪分布式安装 1.6 课后作业 1.1 Hadoop简介 在文章的时候已经讲解了Hadoop的简介以及生态圈,有什么不懂的可以"出门右转" http://dwz.cn/4rdSdU 1.2 HDFS分布式存储系统(Hadoop Distributed File System) HDFS优点 高容错性 数据自动保存多个副本 副本都时候会自动恢复 适合

(转)Hadoop MapReduce链式实践--ChainReducer

版本:CDH5.0.0,HDFS:2.3.0,Mapreduce:2.3.0,Yarn:2.3.0. 场景描述:求一组数据中按照不同类别的最大值,比如,如下的数据: data1: [plain] view plaincopy A,10 A,11 A,12 A,13 B,21 B,31 B,41 B,51 data2: [plain] view plaincopy A,20 A,21 A,22 A,23 B,201 B,301 B,401 B,501 最后输出为: [plain] view pla