海量数据分布式开发结果报告.docx
- 文档编号:23142876
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:12
- 大小:740.76KB
海量数据分布式开发结果报告.docx
《海量数据分布式开发结果报告.docx》由会员分享,可在线阅读,更多相关《海量数据分布式开发结果报告.docx(12页珍藏版)》请在冰豆网上搜索。
海量数据分布式开发结果报告
Xxx学院
海量数据分布式开发结果报告
(大数据学院)
专业班级:
大数据182
指导教师:
xxx
学生姓名:
xxx
实习地点:
xxx学院
实习日期:
2021年6月01日
贵州理工学院学生课程设计成绩评定表
班级
大数据182
学生姓名
钟承泉
学号
2018250080
课程内容简介
项目
评分项目
权重
成绩
得分
100~90
(优)
89~80
(良)
79~70
(中)
69~60
(及格)
<60
(不及格)
报告格式
按照规定格式排版、图文并茂
20%
大作业内容
作业内容(包括:
实习的过程等)描述清楚、详实
70%
总结和体会
课程学习过程中的收获和体会总结深刻
10%
指导教师评语
大作业设计报告总成绩(等级)
评分教师(签名):
年月日
一课程目的
1.1课程目的
通过本课程的学习,使学生理解和掌握海量数据分布式开发的基本原理和使用,涵盖了海量数据分布式开发基础知识点,由浅入深地掌握海量数据分布式开发。
1.2课程内容概要
《海量数据分布式开发》是数据科学与大数据技术专业一门非常重要的专业平台必修课程。
内容主要涵盖了MapReduce核心运行机制、MapReduce的Combiner、MapReduce序列化框架、排序的实现、分区机制和自定义分区、MapRdeduce-Shuffle机制、数据压缩、MapReduce和YARN的区别和联系、Join算法和参数优化。
使学生学习并了Hadoop框架基本原理和操作。
二课程内容
2.1技术学习
MapReduce的思维模式
用Java编写WrodCount案例
实现Mapper类
实现Combiner类
实现Reduce类
实现Driver类
2.2大作业制作过程
1.实现Mapper
packageMapReduce.Partition;
/**
*@author江河三千里
*@version1.0
*@date2021/4/1210:
43
*/
importorg.apache.hadoop.io.IntWritable;
importorg.apache.hadoop.io.LongWritable;
importorg.apache.hadoop.io.Text;
importorg.apache.hadoop.mapreduce.Mapper;
importjava.io.IOException;
/**
*KEYIN,map阶段输入的key的类型:
LongWritable
*VALUEIN,map阶段输入value类型:
Text
*KEYOUT,map阶段输出的Key类型:
Text
*VALUEOUT,map阶段输出的value类型:
IntWritable
*/
publicclassWordCountMapperextendsMapper
privateTextoutK=newText();
//这个放在这里是为了避免单词过多,重复的new,造成资源的浪费
privateIntWritableoutV=newIntWritable
(1);
//这里之所以传入1,是因为在map阶段不进行聚合,只是将每一单词都切割出来,所以传1
@Override
protectedvoidmap(LongWritablekey,Textvalue,Contextcontext)throwsIOException,InterruptedException{
//1获取一行
//jianghejianghe
Stringline=value.toString();
//2切割
//jianghe
//jianghe
String[]words=line.split("");
//这里的文本是通过判断文本的分割方式,我这里分割本文用的是空格,所以这个使用空格分割
//3循环写出
for(Stringword:
words){
//封装outk
outK.set(word);
//写出
context.write(outK,outV);
}
}
}
2.实现Reducer
packageMapReduce.Partition;
/**
*@author江河三千里
*@version1.0
*@date2021/4/1210:
42
*/
importorg.apache.hadoop.io.IntWritable;
importorg.apache.hadoop.io.Text;
importorg.apache.hadoop.mapreduce.Reducer;
importjava.io.IOException;
publicclassWordCountReducerextendsReducer
/**
*KEYIN,reduce阶段输入的key的类型:
Text
*VALUEIN,reduce阶段输入value类型:
IntWritable
*KEYOUT,reduce阶段输出的Key类型:
Text
*VALUEOUT,reduce阶段输出的value类型:
IntWritable
*/
privateIntWritableoutV=newIntWritable();
@Override
protectedvoidreduce(Textkey,Iterable
//这里这个value是一个类似集合的东西
intsum=0;
//jianghe,(1,1)传进的东西
//累加
for(IntWritablevalue:
values){
sum+=value.get();
}
outV.set(sum);
//写出
context.write(key,outV);
//由于这里需要的第二参数为IntWritable,所以创建一个IntWritable对象。
}
}
3.实现Driver
packageMapReduce.Partition;
/**
*@author江河三千里
*@version1.0
*@date2021/4/1210:
43
*/
importorg.apache.hadoop.conf.Configuration;
importorg.apache.hadoop.fs.Path;
importorg.apache.hadoop.io.IntWritable;
importorg.apache.hadoop.io.Text;
importorg.apache.hadoop.mapreduce.Job;
importorg.apache.hadoop.mapreduce.lib.input.FileInputFormat;
importorg.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
importjava.io.IOException;
publicclassWordCountDriver{
publicstaticvoidmain(String[]args)throwsIOException,ClassNotFoundException,InterruptedException{
//1获取job
Configurationconf=newConfiguration();
Jobjob=Job.getInstance(conf);
//2设置jar包路径
job.setJarByClass(WordCountDriver.class);
//3关联mapper和reducer
job.setMapperClass(WordCountMapper.class);
job.setReducerClass(WordCountReducer.class);
//4设置map输出的kv类型
job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(IntWritable.class);
//5设置最终输出的kV类型
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
//设置分区的数量
job.setNumReduceTasks(4);
//6设置输入路径和输出路径
FileInputFormat.setInputPaths(job,newPath("D:
\\HDFS_test\\data"));
FileOutputFormat.setOutputPath(job,newPath("D:
\\HDFS_test\\output8"));
//7提交job
booleanresult=job.waitForCompletion(true);
//true表示将运行进度等信息及时输出给用户,false的话只是等待作业结束
System.exit(result?
0:
1);
}
}
4.Input输入数据为
运行结果:
5.Output7输出数据为
1.实现Mapper类
2.实现Combiner类
3.实现Reduce类
4.实现Driver类
5.运行结果截图
3课程总结
3.1课程总结
本次实验成功地实现了Mapreduce。
在这次实验中,我学到很多东西,加强了我的动手能力,并且培养了我的独立思考的能力。
关键是在做实验时,因为要将理论用代码去实现,出现了很多问题,如果不解决的话,将会很难的继续下去。
这增强了我解决问题的能力。
同时,与老师沟通使我们懂得了配合的重要性,在合作中,我懂得了如何与他人沟通、协作,这些是课本上难以教会我的,必须是在实践当中才能学到的内容。
因此,本次实验真的是使我受益匪浅。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 海量 数据 分布式 开发 结果 报告