- 1、本文档共52页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
hadoop集群mapreduce例子
hadoop 集群 mapreduce 例子
1、数据去重
数据去重主要是为了掌握和利用并行化思想来对数据进行有意义的筛选。统计大数据集上的数据种类个数、从网站日
志中计算访问地等这些看似庞杂的任务都会涉及数据去重。下面就进入这个实例的 MapReduce 程序设计。
1.1 实例描述
对数据文件中的数据进行去重。数据文件中的每行都是一个数据。
样例输入如下所示:
1 )file1 :
2012-3-1 a
2012-3-2 b
2012-3-3 c
2012-3-4 d
2012-3-5 a
2012-3-6 b
2012-3-7 c
2012-3-3 c
2 )file2 :
2012-3-1 b
2012-3-2 a
2012-3-3 b
2012-3-4 d
2012-3-5 a
2012-3-6 c
2012-3-7 d
2012-3-3 c
样例输出如下所示:
1 / 52
2012-3-1 a
2012-3-1 b
2012-3-2 a
2012-3-2 b
2012-3-3 b
2012-3-3 c
2012-3-4 d
2012-3-5 a
2012-3-6 b
2012-3-6 c
2012-3-7 c
2012-3-7 d
1.2 设计思路
数据去重的最终目标是让原始数据中出现次数超过一次的数据在输出文件中只出现一次。我们自然而然会想到将同一个
数据的所有记录都交给一台 reduce 机器,无论这个数据出现多少次,只要在最终结果中输出一次就可以了。具体就是 reduce
的输入应该以数据作为 key ,而对value-list 则没有要求。当 reduce 接收到一个key ,value-list时就直接将 key 复制到
输出的 key 中,并将value 设置成空值。
在 MapReduce 流程中,map 的输出key ,value经过 shuffle 过程聚集成key ,value-list后会交给 reduce。所
以从设计好的 reduce 输入可以反推出 map 的输出 key 应为数据,value 任意。继续反推,map 输出数据的 key 为数据,
而在这个实例中每个数据代表输入文件中的一行内容,所以 map 阶段要完成的任务就是在采用 Hadoop 默认的作业输入方
式之后,将 value 设置为 key ,并直接输出(输出中的value 任意)。map 中的结果经过shuffle 过程之后交给 reduce。reduce
阶段不会管每个 key 有多少个 value ,它直接将输入的key 复制为输出的 key ,并输出就可以了(输出中的value 被设置成
空了)。
1.3 程序代码
程序代码如下所示:
package com.hebut.mr;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
2 / 52
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.GenericOptionsParser;
public class Dedup {
//map 将输入中的 value 复制到输出数据的 key 上,并直接输出
public static class Map extends MapperO
您可能关注的文档
- 最全抗浮设计.ppt
- 最新房地产公司部门设置与运作流程 修改后版.doc
- 最全烘焙diy蛋糕教程, 新手瞬间变大师!.doc
- 暖通防排烟系统原理.ppt
- 有关监理说词.doc
- 有关软件需求分析步骤以与所需文档.doc
- 最新六年高考英语满分作文与评析(04—09).doc
- 有关物质量基本概念与计算.doc
- 最新六年高考英语满分作文与评析(06—11).doc
- 机械上常用传动机构与其传动关系.doc
- T∕CAI 027-2023 仁兆蒜薹育苗技术规程.pdf
- T∕CI 335-2024 全生命周期综合窗口服务规范.pdf
- T∕AHEPI 0005-2024 高分子复合电极板静电除尘灭菌装置技术要求.pdf
- T∕CANTON 02-2023 茶师能力评价规程.pdf
- T∕CAGIS 10-2023 河湖管理范围划定测绘成果质量要求及评定.pdf
- T∕BJTA 001-2024 北京知名商标品牌认定管理规范.pdf
- T∕CASME 1105-2023 餐饮企业反食品浪费实施指南.pdf
- T∕CFIAS 3016-2023 饲料添加剂 天(门)冬氨酸.pdf
- T∕CFIAS 6007-2024 饲料添加剂络(螯)合锌中总锌和游离锌的测定.pdf
- T∕CAI 221-2024 地理标志农产品 卓尼柴胡》.pdf
文档评论(0)