ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:511.24KB ,
资源ID:13787433      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13787433.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(云计算实验报告书文档格式.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

云计算实验报告书文档格式.docx

1、 /* 在map中先区分输入行属于左表还是右表,然后对两列值进行分割, * 保存连接列在key值,剩余列和左右表标志在value中,最后输出 */ public static class Map extends Mapper / 实现map函数 public void map(Object key, Text value, Context context)throws IOException, InterruptedException String line = value.toString();/ 每行文件 String relationtype = new String();/ 左右表标识

2、 / 输入文件首行,不处理 if(line.contains(factoryname)=true|line.contains(addressed)= true) return; / 输入的一行预处理文本 StringTokenizer itr = new StringTokenizer(line); String mapkey = new String(); String mapvalue = new String(); int i = 0; while (itr.hasMoreTokens() / 先读取一个单词 String token = itr.nextToken(); / 判断该地址

3、ID就把存到values0 if (token.charAt(0)=0& token.charAt(0) 0) relationtype = 1; else 2 continue; / 存工厂名 mapvalue += token + i+; / 输出左右表 context.write(new Text(mapkey), new Text(relationtype + + mapvalue); /*reduce解析map输出,将value中数据按照左右表分别保存, * 然后求出笛卡尔积,并输出。public static class Reduce extends Reducer / 实现red

4、uce函数 public void reduce(Text key, Iterable values, Context context) throws IOException, InterruptedException / 输出表头 if (0 = time) context.write(new Text(), new Text(addressname); time+; int factorynum = 0; String factory = new String10; int addressnum = 0; String address = new String10; Iterator it

5、e = values.iterator(); while (ite.hasNext() String record = ite.next().toString(); int len = record.length(); int i = 2; if (0 = len) continue; / 取得左右表标识 char relationtype = record.charAt(0); / 左表 if (1 = relationtype) factoryfactorynum = record.substring(i); factorynum+; / 右表2 addressaddressnum = r

6、ecord.substring(i); addressnum+; / 求笛卡尔积 if (0 != factorynum & 0 != addressnum) for (int m = 0; m factorynum; m+) for (int n = 0; n addressnum; n+) / 输出结果 context.write(new Text(factorym), new Text(addressn); public static void main(String args) throws Exception Configuration conf = new Configuratio

7、n(); /conf.set(mapred.job.tracker, 192.168.1.2:9001); /String ioArgs = new String MTjoin_inMTjoin_out ; String otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs(); if (otherArgs.length != 2) System.err.println(Usage: Multiple Table Join System.exit(2); Job job = new Job(conf, Multipl

8、e Table Join job.setJarByClass(MTjoin.class); / 设置Map和Reduce处理类 job.setMapperClass(Map.class); job.setReducerClass(Reduce.class); / 设置输出类型 job.setOutputKeyClass(Text.class); job.setOutputValueClass(Text.class); / 设置输入和输出目录 FileInputFormat.addInputPath(job, new Path(otherArgs0); FileOutputFormat.setO

9、utputPath(job, new Path(otherArgs1); System.exit(job.waitForCompletion(true) ? 0 : 1);三、 主要仪器设备及耗材Ubuntu、Hadoop、PC第二部分:实验调试与结果分析(可加页)一、 调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)1调试方法描述以下是部分核心Hadoop的调试过程截图(1)主节点:namenode(2)配置jdk:一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)(3)配置ssh:(4)配置Hadoop2实验输入数据记录输入两个

10、txt文件:代表工厂表的文件(factory.txt)和代表地址表的文件(adsress.txt)3实验输出数据记录运行过程输入的命令如下所示:删除已经存在的output文件夹(包括子目录):hadoop fs -rmr output在hadoop指定目录内创建新目录: hadoop fs -mkdir input将factory.txt文件夹存储至hadoop: hadoop fs -put factory input将address.txt文件夹存储至hadoop: hadoop fs -put address input运行已经打包好的MTJoin.java文件: hadoop jar

11、MTJoin.jar MTJoin input output查看运行结果:hadoop fs -cat output/part-r-00000输入查看结果命令就会按要求输出“工厂名地址名”表,按工厂名排序输出。二、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)1结果描述 输入工厂表对应的文件factory.txt和地址表对应的文件address.txt,则按要求输出了“工厂名地址名”表。完成了实验要求。2实验现象分析 在配置Hadoop的过程中遇到了很多问题,因为对Hadoop的不熟悉导致多次重启系统,但是最后还是较好的完成了实现,在实验的规程中并没有出现过于严重

12、的问题。3影响因素讨论 首先我们必须完成Hadoop的集群配置:安装Linux系统,推荐Ubuntu14.03,建议直接使用hadoop作为用户安装、配置jdk、更改环境变量、配置ssh、用jps验证集群是否配置成功,使用多台计算机连接主节点和多个次节点完成多台计算机的并行分布。这些配置的过程对于该实验是非常重要的,只有搭建好了Hadoop才能完成该实验。同时设计好数据文件也会直接影响数据的输出。4算法分析(包括时间和空间) 若工厂表长度为N,地址表的长度为M,则时间复杂度为O(N*M),空间复杂度为O(1)。二、 实验小结、建议及体会 多表关联和单表关联相似,都类似于数据库中的自然连接。相比单表关联,多表关联的左右表和连接列更加清楚。所以可以采用和单表关联的相同的处理方式,map识别出输入的行属于哪个表之后,对其进行分割,将连接的列值保存在key中,另一列和左右表标识保存在value中,然后输出。reduce拿到连接结果之后,解析value内容,根据标志将左右表内容分开存放,然后求笛卡尔积,最后直接输出。在进行该多表关联之前我们必须完成Hadoop的集群配置:安装Linux系统,推荐U

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1