



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、云计算实验报告3 实验 报告 课程 : _ _ _ 云计算 _ 实验 题目 : _ s hdfs 下的 的 e mapreduce 编程应用 _ _ 专业: _ 软件工程 _ 姓名: _ 王磊 _ 学 号 : _ b1040914 _ (1) 书写 e mapreduce 的原理以及执行过程 1.mapreduce 库先把 user program 的输入文件划分为 m 份(m 为用户定义),每一份通常有 16mb 到 64mb,如图左方所示分成了 split04;然后使用 fork 将用户进程拷贝到集群内其它机器上。 2.user program 的副本中有一个称为 master,其余称为w
2、orker,master 是负责调度的,为空闲 worker 分配作业(map作业或者 reduce 作业),worker 的数量也是可以由用户指定的。 3.被分配了 map 作业的 worker,开始读取对应分片的输入数据,map 作业数量是由 m 决定的,和 split 一一对应;map作业从输入数据中抽取出键值对,每一个键值对都作为参数传递给 map 函数,map 函数产生的中间键值对被缓存在内存中。 4.缓存的中间键值对会被定期写入本地磁盘,而且被分为r 个区,r 的大小是由用户定义的,将来每个区会对应一个 reduce作业;这些中间键值对的位置会被通报给 master,master
3、负责将信息转发给 reduce worker。 5.master 通知分配了 reduce 作业的 worker 它负责的分区在什么位置(肯定不止一个地方,每个 map 作业产生的中间键值对都可能映射到所有 r 个不同分区),当 reduce worker 把所有它负责的中间键值对都读过来后,先对它们进行排序,使得相同键的键值对聚集在一起。因为不同的键可能会映射到同一个分区也就是同一个 reduce 作业(谁让分区少呢),所以排序是必须的。 6.reduce worker 遍历排序后的中间键值对,对于每个唯一的键,都将键与关联的值传递给 reduce 函数,reduce 函数产生的输出会添加到
4、这个分区的输出文件中。 6.当所有的 map 和 reduce 作业都完成了,master 唤醒正版的 user program,mapreduce 函数调用返回 user program 的代码。 (2)e mapreduce 程序不同的提交方式 ; 1、用命令行方式提交 2、在 eclipse 中提交作业 3、采用 eclipse 的插件实现项目的提交 这三种方式中在 eclipse 中提交的过程: 前提是:1、在你的电脑上安装好 eclipse,可以在 linux 下,也可 以在 windows 环境下哦,这里需要指出的是:提交作业的机器只要有 hadoop 的 api 就可以了,和提交
5、作业的机器所处的环境无关。 2、成功搭建一个 hadoop 集群,或成功部署一个伪分布式,并启动 hadoop。 代码段截图如下: 这时候程序只会在 eclipse 中虚拟的一个云环境中运行,而不会跑上云端去运行.需要在 main 方法中添加几行代码,代码附录如下: 方案三:采用 eclipse 的插件实现项目的提交 前提:在 eclipse 中成功地安装 mapreduce 插件。 不过需要提醒各位的是:hadoop- 版本自带的插件不够完整,需要作出如下修改: 1、将 hadoop_home/lib 目录下的 commons-configuration-1.6.jar
6、, commons-httpclient-3.0.1.jar , commons-lang-2.4.jar , jackson-core-asl-1.0.1.jar 和 jackson-mapper-asl-1.0.1.jar 等 5 个包复制到 hadoop-eclipse-plugin-.jar 的 lib 目录下。 2、然后,修改该包 meta-inf 目录下的 manifest.mf,将classpath 修改为以下内容: (3) 基于 e mapreduce 编程模型实现的对文件数据排序 import org.apache.hadoop.conf.configur
7、ation; import org.apache.hadoop.fs.path; import org.apache.hadoop.io.intwritable; import org.apache.hadoop.io.text; import org.apache.hadoop.mapreduce.job; import org.apache.hadoop.mapreduce.lib.input.; import org.apache.hadoop.mapreduce.lib.input.keyvaluetextinputformat; import org.apache.hadoop.ma
8、preduce.lib.output.; import org.apache.hadoop.util.genericoptionsparser; public class sortmain public static void main(string args) throws exception configuration conf = new configuration(); string otherargs = new genericoptionsparser(conf, args).getremainingargs(); if (otherargs.length != 2) system
9、.err.println(usage: wordcount in out); system.exit(2); job job = new job(conf, sort); job.setjarbyclass(sortmain.class); job.setinputformatclass(keyvaluetextinputformat.class);/设定输入的格式是 key(中间t 隔开)value job.setmapperclass(sortmapper.class); /job.setcombinerclass(intsumreducer.class); job.setreducerc
10、lass(sortreducer.class); job.setmapoutputkeyclass(intpair.class); job.setmapoutputvalueclass(intwritable.class); job.setsortcomparatorclass(textintcompartor.class); job.setgroupingcomparatorclass(textcomparator.class);/以 key 进行 group by job.setpartitionerclass(partiontest.class); job.setoutputkeyclass(text.class); job.setoutputvalueclass(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 搬入搬出注意事项协议
- 真空电子器件在光纤传感器中的应用考核试卷
- 抽纱刺绣技艺的科普传播考核试卷
- 磷肥产业技术研发与市场应用考核试卷
- 天然气企业绿色发展与循环经济考核试卷
- 派遣工劳动法律法规宣传教育考核试卷
- 畜牧业的畜禽产品的加工技术与绿色低碳生产考核试卷
- 期货市场中介职能分析考核试卷
- 2025专卖店超市商场员工聘用合同模板
- 2025合作伙伴协议-产品代理合同
- 夫妻债务转让协议书范本
- 2025年房地产经纪人(业务操作)考前必刷综合题库(800题)附答案
- 桌球助教合同协议
- 电商行业10万字PRD
- 2024-2025学年八年级下学期道德与法治期中模拟试卷(一)(统编版含答案解析)
- 高一下学期《双休时代自由时间背后暗藏残酷筛选+你是“猎手”还是“猎物”?》主题班会
- GB/T 26354-2025旅游信息咨询服务
- 交互式影像中叙事与视觉表达的融合及其观众体验研究
- SL631水利水电工程单元工程施工质量验收标准第1部分:土石方工程
- 甘肃省兰州市第十一中学教育集团2023-2024学年八年级下学期期中考试数学试卷
- (高清版)TDT 1075-2023 光伏发电站工程项目用地控制指标
评论
0/150
提交评论