版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大数据平台部署与运维《大数据平台部署与运维》课程组MapReduce编程模型-WordCount基本原理上节课知识回顾我们需要统计文本中每个单词出现的次数,我们看看怎么完成的?过程很显然,首先拿到文本不是立刻就送去MapReduce中处理,而是先通过一个叫做TextInputFormat的类,处理好原有文本的数据,用偏移量逐个表识。然后再传入map中处理。然而map只是对单词进行简单的编号(同时编上1),在再进入reduce类之前,先通过迭代器(图中黑色部分),把map的数据简单的处理,如上图的hadoop为例,迭代器的内容就是<hadoop,iterator(1,1)>,那么在reduce类中,我们只要统计好迭代器中的数值就好了。Map阶段首先这个WordCountMapper类要继承Mapper类,这个类后面的参数是什么呢?<LongWritable,Text,NullWritable,LongWritable>,为什么要这样写呢。实际上这四个参数分别对应<KEYIN,VALUEIN,KEYOUT,VALUEOUT>,也就是输入的key,输入的value,输出的key,输出的value。
Map阶段protected
voidmap(LongWritable
key,Textvalue,
Mapper<LongWritable,Text,
NullWritable,
LongWritable>.Contextcontext)
throws
IOException,
InterruptedException
{
//拿到一行文本内容,转换成String类型
String
valueString
=
value.toString();
//将这行文本切分成单词
String
wArr[]=
valueString.split("
");
//输出单词1
context.write(NullWritable.get(),
new
LongWritable(wArr.length));
}toString(),它的作用是返回1个反映这个对象的字符串NullWritable是Writable的一个特殊类,实现方法为空实现,不从数据流中读数据,也不写入数据,只充当占位符,如在MapReduce中,如果你不需要使用键或值,你就可以将键或值声明为NullWritable,NullWritable是一个不可变的单实例类型。Reduce阶段publicclass
WordCountReducer
extendsReducer<NullWritable,
LongWritable,
NullWritable,
LongWritable>{
@Override编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错。
protected
voidreduce(NullWritable
key,
Iterable<LongWritable>v2s,
Reducer<NullWritable,
LongWritable,
NullWritable,
LongWritable>.Context
context)throws
IOException,
InterruptedException
{
Iterator<LongWritable>it=v2s.iterator();
//定义一个计时器
long
sum=0;
//
通过value这个迭代器,遍历这一组kv中所有的value,进行累加
while(it.hasNext()){
sum
+=
it.next().get();}
context.write(NullWritable.get(),
new
LongWritable(sum));
}}词频统计统计每个单词出现的次数词频统计词频统计原理——Map阶段
输入对每一行数据进行标号
过程按空格进行分割
输出W作为key值词频统计词频统计原理——reduce阶段
代码部分—map阶段标记public
classWordCountMapperextendsMapper<LongWritable,Text,Text,
LongWritable>{
@Override---重写方法
protected
voidmap(LongWritablekey,Textvalue,
Mapper<LongWritable,
Text,Text,LongWritable>.Contextcontext)
throws
IOException,InterruptedException{
//得到每一行的数据
String
valueString=value.toString();
//调用方法,按空格进行分割,将数据分割成为字符串数组
String
wArr[]=valueString.split("");
//遍历
for(int
i=0;i<wArr.length;i++){
//map
outkey/value
context.write(new
Text(wArr[i]),newLongWritable(1));}}}代码部分—reduce阶段标记public
classWordCountReducerextendsReducer<Text,LongWritable,Text,
LongWritable>{输入的数据类型与Map方法输出的数据类型相同
@Override
protected
voidreduce(Textkey,Iterable<LongWritable>v2s,—迭代器
Reducer<Text,
LongWritable,Text,LongWritable>.Contextcontext)throws
IOException,InterruptedException{
Iterator<LongWritable>
it=v2s.iterator();
//定义
long
sum=0;
//
遍历vulues加入到sum中,将values集合中的每一个元素都进行相加,每一个元素的值为1,所以相加得的值就是key值出现得次数
while(it.hasNext()){
sum
+=it.next().get();
}//输出的key与输入的key相同,将sum作为value输出
context.write(key,
newLongWritable(sum));}}代码部分—主函数public
classTestMapReducer{
public
staticvoidmain(String[]args)throwsException{
Configuration
conf=newConfiguration();
job.setJarByClass(TestMapReducer.class);—设置作业的主类
job.setMapperClass(WordCountMapper.class);—设置作业的Mapper和Reducer类
job.setReducerClass(WordCountReducer.class);
job.setMapOutputKeyClass(Text.class);—设置mapper类的key和value的输出类型job.setMapOutputValueClass(LongWritable.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(LongWritable.class);
FileInputFormat.setInputPaths(job,
newPath(“file:///simple/source.txt”));//设置文件的输入和输出路径(HDFS)//输入和输出路径为HDFS中的路径
FileOutputFormat.setOutputPath
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 纵隔继发性恶性肿瘤的护理查房
- 浇水活动心得体会大学生
- 幼儿园教案《清明节》含反思
- 鼻鼽的健康教育
- 2013年电大合同法考试试题集锦
- 商品房买卖合同
- (正式版)JTT 1494-2024 海区导标配布导则
- 河北省承德市2023-2024学年高二下学期3月阶段性测试联考生物试卷
- 组建兼职应急救援队伍
- 六下形容词副词讲解及练习
- 中国城市建设史智慧树知到期末考试答案章节答案2024年西安工业大学
- 中国丝绸智慧树知到期末考试答案章节答案2024年浙江理工大学
- 岭南建筑灰塑技艺智慧树知到期末考试答案2024年
- 病区ICU医院感爆发应急预案演练记录及效果评价表
- 集体备课课件
- 中国少年先锋队入队申请表
- FCEwriting(最新整理)
- 标准型号链条参数表
- 书法五下教案河北美术出版社
- 建筑工程施工招标投标程序流程图(最新完整版).ppt
- 三年级科学上册 水 5 《水能溶解多少物质》教学课件 教科版.ppt
评论
0/150
提交评论