作者简介

创业中的技术合伙人杜亦舒,喜欢学习和分享技术。个人订阅号:性能和架构。

本文旨在帮助您快速了解MapReduce的工作机制和开发方法,解决以下问题:

MapReduce的基本原理是什么?

MapReduce的实现过程是怎样的?

MapReduce核心流程的细节

如何开发MapReduce程序?

文中提供了程序实例中涉及的测试数据文件,可以直接下载使用。

至于实用环境,如果不喜欢自己搭建Hadoop环境,可以下载使用本教程提供的环境,具体使用方法会在实用部分介绍。

经过学习和实践,可以对MapReduce的工作原理有一个清晰的认识,掌握MapReduce的编程思想。

大纲:

一、MapReduce的基本原理

二、MapReduce词条示例——字数字数统计

三、MapReduce执行过程分析

示例1-自定义对象序列化

示例2-自定义分区

示例3-计算每组订单中金额最大的记录

示例4-合并多个小文件

示例5-将输出分组到多个文件

第四,梳理MapReduce的核心流程

示例6-连接操作

示例7-计算用户之间的共同朋友

动词 (verb的缩写)下载方法

一、MapReduce的基本原理

MapReduce是一种用于大规模数据集分布式计算的编程模型。

1.MapReduce的流行解释

图书馆有10个书架来数书的数量。为了加快统计速度,管理员找了10个学生,每个学生负责统计一个书架上的书的数量。

张统计书架1

王统计书架2

刘同学统计书架3

……

过了一会儿,10个同学陆续来管理员那里报了统计,管理员把所有的数字加起来就得到书的总数。

这个过程可以理解为MapReduce的工作过程。

2.MapReduce中有两个核心操作

地图节点2

输入:“今天很好”

输出:,,

地图节点3

输入:“好天气就是好天气”

输出:,,,

地图节点4

输入:“今天天气不错”

输出:,,,

当传递给reduce方法时,它变成:

很好

值:

因此,reduce方法接收相同键的一组值。

主程序:src/main/Java/wordcuntmapreduce . Java

该主要方法用于组装作业并提交执行

4.编译并打包

在pom.xml所在的目录中执行打包命令:

mvn包

执行完成后,将自动生成目标目录,其中包含打包的jar文件。

现在项目文件结构:

5.运作

先将目标中的jar上传到Hadoop服务器,然后准备Hadoop服务器HDFS的测试文件

cd $HADOOP_HOME

HDFS DFS-mkdir-p/word count/input

hdfs dfs -put *。txt /wordcount/input

执行wordcount jar

Hadoop jar MapReduce-word count-0 . 0 . 1-SNAPAST . jar WordCountMapr

educe/word count/input/word count/output

执行完成后进行验证

hdfs dfs -cat /wordcount/output/*

可以看到字数的统计结果。

三、MapReduce执行过程分析

让我们看看从作业提交到作业执行的过程。

MapReduce程序:src/main/java/FlowCount.java

主程序指定自定义分区的使用

job . SetPartitionerclass;

以连接的关联项“productid”作为键,以bean作为值的输出。

3)减少加工

reduce方法接收一组具有相同pid的bean对象。

遍历bean对象集,如果bean是订单数据,放入新的订单集,如果是商品数据,保存到商品bean中。然后遍历新的订单集,用商品bean的数据完成每个订单bean。

这样就获得了完整的订单及其商品信息。

2.代码实践

输出

再读一行B:A,C,E,K

输出

……

减少

同一把钥匙将被分成一组,例如:

& ltc,A >;& ltc,B& gt;& ltc,E >;& ltc,F >;& ltc,G >;......

关键:C

数值:

意思:C是这些用户的朋友。

遍历该值以获得:

A B有一个共同的朋友c。

A E有个共同的朋友c。

...

B E有个共同的朋友c。

B F有个共同的朋友c。

输出:

& ltA-B,加州;

& lt阿英,C >;

& lt飞机、飞机、飞机。

& lt阿甘,C >;

& ltB-E,C >;

& ltB-F,C >;

.....

2)第二个MapReduce

计算上一步的输出结果。

地图

读出上一步的结果数据,组织成键值直接输出

例如:

排成一行阅读

直接输出

减少

读入数据,组合键相同

& ltA-B,加州;& ltA-B;& ltA-B,通用汽车公司;......

输出:

A-B C,F,G,.....

这样,获得了两个用户之间的共同好友列表

2.代码实践

◆近期热点文章◆

◆ MVP栏目◆

都一样。

都一样。

◆最近的活动◆

中国数据资产管理峰会上海展

峰会官方网站:www.dams.org.cn

1.《mapreduce 7个实例全面掌握Hadoop MapReduce》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《mapreduce 7个实例全面掌握Hadoop MapReduce》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/jiaoyu/1667598.html