云计算实验报告4

上传人:hong****2021 文档编号:48669434 上传时间:2022-01-13 格式:DOCX 页数:6 大小:19.94KB
收藏 版权申诉 举报 下载
云计算实验报告4_第1页
第1页 / 共6页
云计算实验报告4_第2页
第2页 / 共6页
云计算实验报告4_第3页
第3页 / 共6页
资源描述:

《云计算实验报告4》由会员分享,可在线阅读,更多相关《云计算实验报告4(6页珍藏版)》请在装配图网上搜索。

1、本文格式为Word版,下载可任意编辑云计算实验报告4 太 原 科 技 大 学 实 验 报 告 2021年 10月 21 日 试验时间:16 时 00分至18 时00 分 专业 软件工程 姓名 张森 学号 202126170433 班级 172604 课程名称 云计算 试验名称 MapReduce 试验 同组者 指导老师 成果 一、试验目标: MapReduce 界的 helloworld 程序就是 WordCount 程序。所谓 WordCount,就是单词计数,就是用来统计一篇或者一堆文本文件中的各单词的消失次数。 二 、 试验原理: Map 端工作 1. 读取要操作的文件这步会将文件的内容

2、格式化成键值对的形式,键为每一行的起始位置偏移,值为每一行的内容。 2. 调用 map 进行处理在这步使用自定义的 Mapper 类来实现自己的规律,输入的数据为 1.1 格式化的键值对,输入的数据也是键值对的形式。 3. 对 map 的处理结果进行分区map 处理完毕之后可以依据自己的业务需求来对键值对进行分区处理,比如,将类型不同的结果保存在不同的文件中等。这里设置几个分区,后面就会有对应的几个 Reducer 来处理相应分区中的内容。 4. 分区之后,对每个分区的数据进行排序,分组排序根据从小到大进行排列,排序完毕之后,会将键值对中,key 相同的选项 的 value 进行合并。如,全部

3、的键值对中,可能存在 hello 1 hello 1 key 都是 hello,进行合并之后变成 hello 2 可以依据自己的业务需求对排序和合并的处理进行干涉和实现。 5. 归约(combiner)简洁的说就是在 map 端进行一次 reduce 处理,但是和真正的 reduce 处理不同之处在于:combiner 只能处理本地数据,不能跨网络处理。通过 map 端的 combiner 处理可以削减输出的数据,由于数据都是通过网络传输的,其目的是为了减轻网络传输的压力和后边 reduce 的工作量。并不能取代 reduce。 Reduce 端工作 1. 通过网络将数据 copy 到各个 r

4、educe。 2. 调用 reduce 进行处理reduce 接收的数据是整个 map 端处理完毕之后的键值对,输出的也是键值对的集合,是最终的结果。 3.将结果输出到 hdfs 文件系统的路径中。 单词计数程序应当是这样的: 1、逐行读取文本内容 2、把读取到的一行文本内容切割为一个一个的单词 3、把每个单词消失一次的信息记录为一个 key-value,也就是单词-1 4、收集全部相同的单词,然后统计 value 写出的 value 值得总和,也就是 key 为同一个单词的全部 1 的和。 三、试验内容: 在配置好的 hadoop 下装 eclipse(linux 版),然后在 eclips

5、e 下编写运行 word count 四、试验设备: 个人笔记本电脑 虚拟街软件:VMware Workstation 系统 CentOS-7-x86_64-Everything-2021.iso 五、试验步骤: 试验首先在 HDFS 上创建输入文件名目 test,命令如下: hadoopubuntu:$ hadoop fs -mkdir test 接着将本地的文件 put 到 HDFS 上 test 名目下,并查看,命令如下: hadoopubuntu:/txtfile$ hadoop fs -put -f *.txt test hadoopubuntu:$ hadoop fs -ls te

6、st Found 3 items -rw-r-r- 1 hadoop supergroup 24 2021-10-21 14:43 test/file1.txt -rw-r-r- 1 hadoop supergroup 24 2021-10-21 14:43 test/file2.txt -rw-r-r- 1 hadoop supergroup 114957 2021-10-21 15:57 test/news.txt 解释:-f 是可以 overwrite 的意思 新建一个 Javaproject,编写 wordcount 程序,如下所示 package example; import or

7、g.apache.hadoop.fs.Path; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapred.*; import java.io.IOException; import java.util.Iterator; import java.util.StringTokenizer; /* * Created by hadoop on 10/22/16

8、. */ public class WordCount /Mapper: LongWritable Text project to Text IntWritable public static class Map extends MapReduceBase implements MapperLongWritable, Text, Text, IntWritable private final static IntWritable one = new IntWritable(1); private Text word = new Text(); /reporter report the prog

9、ress or they are live public void map(LongWritable key, Text value, OutputCollectorText, IntWritable output, Reporter reporter) throws IOException String line = value.toString(); StringTokenizer tokenizer = new StringTokenizer(line); while (tokenizer.hasMoreTokens() /set change string to Text word.s

10、et(tokenizer.nextToken(); output.collect(word, one); public static class Reduce extends MapReduceBase implements ReducerText, IntWritable, Text, IntWritable /is called for every key /IntWritable:you can use it as int public void reduce(Text key, IteratorIntWritable values, OutputCollectorText, IntWr

11、itable output, Reporter reporter) throws IOException int sum = 0; while (values.hasNext() sum += values.next().get(); output.collect(key, new IntWritable(sum); public static void main(String args) throws Exception JobConf conf = new JobConf(WordCount.class); conf.setJobName(wordcount); conf.setOutpu

12、tKeyClass(Text.class); conf.setOutputValueClass(IntWritable.class); conf.setMapperClass(Map.class); /conf.setCombinerClass(Reduce.class); conf.setReducerClass(Reduce.class); /input format conf.setInputFormat(TextInputFormat.class); conf.setOutputFormat(TextOutputFormat.class); FileInputFormat.setInp

13、utPaths(conf, new Path(args0); FileOutputFormat.setOutputPath(conf, new Path(args1); JobClient.runJob(conf); 解释:项目需要导入 Hadoop 的包,方法:File-Project Structure-Modules-右侧绿色+,加入 Hadoop 名目下 lib 文件夹导出 jar 包,File-Project Structure-Artifacts-绿色+-JAR-From modules with dependcies -apply Build-Build Artifacts 运行

14、 jar 包 hadoopubuntu:/txtfile$ hadoop jar WordCount.jar test test-out 最终查看 HDFS 上的结果并将结果 get 到本地: hadoopubuntu:$ hadoop fs -ls test-out Found 2 items -rw-r-r- 1 hadoop supergroup 0 2021-10-21 13:59 test-out/_SUCCESS -rw-r-r- 1 hadoop supergroup 40 2021-10-21 13:59 test-out/part-00000 hadoopubuntu:/exp$ hadoop fs -get /user/hadoop/test_out/part-r-00000 . 六、试验结果: l 在 hdfs 中查看输出的文件 运行 jar 包之后,使用扫瞄器登录 http:/localhost:8088,点击左侧 Node Labels,可以看到运行状态如图 1. 在 bash 下查看试验输出结果,如图 2 所示。 七:心得体会 通过本次试验,我们对于 MapReduce 程序的理解更加深刻,对于云计算这门课也有了更深的理解,我们也会在实践中成长,提高自己的学习力量。 第 6 页 共 6 页

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!