云计算实验报告书

上传人:油*** 文档编号:168038064 上传时间:2022-11-07 格式:DOCX 页数:9 大小:192.21KB
收藏 版权申诉 举报 下载
云计算实验报告书_第1页
第1页 / 共9页
云计算实验报告书_第2页
第2页 / 共9页
云计算实验报告书_第3页
第3页 / 共9页
资源描述:

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

1、实验项目名称多表关联实验成绩实验者专业班级组别同组者实验日期2016. 1. 9第一部分:实验分析与设计(可加页)一、实验内容描述(问题域描述)输入两个文件:一个代表工厂表,包含工厂名列和地址编号列;另一个代表地 址表,包含地址名列和地址编号列。从输入数据中找出工厂名和地址名的对应关系, 输出“工厂名地址名”表,按工厂名排序输出;数据文件自己设计样例。二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等, 用硬件逻辑或者算法描述)具体的算法实现如下:public class MTjoin public static int time = 0;/*在map中先区分输入行属于左表还

2、是右表,然后对两列值进行分割, *保存连接列在key值,剩余列和左右表标志在value中,最后输出 */publicstatic class Map extends Mapper /实现map函数public void map(Object key,Tex tvalue, Contextcontext)throws IOException, InterruptedException String line = value .toStrin g();/ 每行文件 String rela tiont ype = new Strin g();/左右表标识 /输入文件首行,不处理if(line.con

3、tains(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(); /判断该地址ID就把存到values0 if (token.charAt(0)=0

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

5、 key, Iterable values, Context context) throws IOException, InterruptedException /输出表头if (0 = time) context.write(newText(”factoryname),newText(addressname);time+;int factorynum = 0;String factory = new String10;int addressnum = 0;String address = new String10;Iterator ite = valuesiterator();while (

6、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+;/右表if (2 = relationtype) addressaddressnum = record.substring(i); a

7、ddressnum+;/求笛卡尔积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 Configuration();/conf.set(mapred.job.tr

8、acker, 192.168.1.2:9001); /String ioArgs = new String MTJoin_in,MTJoin_out ;一String otherArgs = newGenericOptionsParser(conf,args)getRemainingArgs();if (otherArgs.length != 2) System.err.printin(”Usage: Multiple Table Join );System.exit(2);Job Job = new Job(conf, MuItiple Table Join);Job.setJarByCla

9、ss(MTJoin.class);/设置Map和Reduce处理类Job.setMapperClass(Map.class);Job.setReducerClass(Reduce.class);/设置输出类型Job.setOutputKeyClass(Text class);Job.setOutputValueClass(Text class);/设置输入和输出目录FilelnputFormataddlnputPath(Job, new Path(otherArgs0); FileOutputFormat.setOutputPath(Job, new Path(otherArgs1); Sys

10、tem.exit(Job.waitForCompletion(true) ? 0 : 1);三、主要仪器设备及耗材Ubuntu、Hadoop、PC第二部分:实验调试与结果分析(可加页)一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等) 1.调试方法描述以下是部分核心Hadoop的调试过程截图(1)主节点:namenodesysadnAlnnamenode: -t丄对册 1&:39 冬詐 sysadninnanenode:ifconfigenol67?7736 Link encap: Ethernet HvJaddr 00:0c :29:24: 59:42W-tn

11、et addr:192,168.1.20 Beast:192.168.1,255 Mask:255.255.255.0tnet6 addr l feSO:20c:29ff:fe24:5B42/64 Scope:LinkP BROADCAST RUNNING MULTICAST ivITJ:150& Metric:1RX packets l198 errors:Q drapped:Q overrtnsiO framei&TX packets:143 errors:0 dropped:0 overruns:B carrier:a collisions r0 txqueuelen:l&OflRX b

12、ytes:33444 33/ KRJ TX bytes:22824 (22+8 K0) interrupt: 19 Base add reEE 烛药常j| loLink encap: Local Loopbackinet add厂:12T.EkL:l Mask:255 .O.fl.Otnets addr: ;:1/128 Scope:HostUP LOOP&ACK RUNNING MTU:65536 Metric:1RX packets:3994 errors: dropped:0 overruns: frame:TX packets :3994 errors:0 dropped: Q ove

13、rrunsrf) carri_er:0 cotlisionsiO txqueuelen:ORX bytes:299S55 (299,3 KB) TX btes:299355 (299-W KB)ysadntnsnariencde:-$ |(2) 配置 jdk:ftdone unset iexport JAVA_HOME=/usr/lib/jvn/jdkl,7r0export J RE_HOME=$JAVA_HOME/J reexport CLASSPATH=.:$JAVA_HCME/ltbI$JR E HOME/Ltb export PATH=$JAVA_H0ME/bin:$PATH|檜管 T

14、erminal Fils Edit View Search Terminal Help sysadminnamenode:java -verstonjava version ,rl.7.0Jsvd(TM) SE Runtime En/i_oriri亡nt (build 1.7.O-blZ)Java HotSpot(TM) Client VM (build 21.0-bl7, nixed node) sysadminnamenode:|第二部分:实验调试与结果分析(可加页)一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)1.调试方法描述(3)配置 ssh:0营

15、Terminal File Edit View Search Termiral HelpsysadminnaHenode:$ sudo apt-get install &shsysadminnamenodsys&dmtrinamenodesud* apt-get install rsyncsysadminnmenode:sysadnlnnaineraode:ssh-keygen -t dsa -P -f /*ssh/ld_dsa|sysadnninnannenode: sysadnitnnaiqenode :$ cat -7*ssh/id_dsa.pub -/*sshyauthorized_k

16、eyssysadminnamenodei sy sadininnainenode :$ cd * sshsysadiHinnainenodessh$ ssh localhostWelcome 七o Ubuntu 15*19 (GNU/Linux 4*2-16-genertc i686)* Documentation: h七七ps:/help.ubuntu * com/12 pm匚can be updoted*58 updates are security updd七亡s”Last login: Tue Jan 5 16:55:98 2016 from 192/168.1.22 sysadiHi

17、nnainenode |(4)配置 HadoopsysadminnmenQde: -sysadnLngnainenode:mkdir hadooplsysadminnamenode:# The java inplenentation to use. Required, export JAVA_H0ME=:/iisr/lib/vR/dkl-7.e第二部分:实验调试与结果分析(可加页)2实验输入数据记录输入两个txt文件:代表工厂表的文件 adsress .txt)第二部分:实验调试与结果分析(可加页)3.实验输出数据记录 运行过程输入的命令如下所示: 删除已经存在的out pu t文件夹(包括子

18、目录):hadoop fs -rmr out put 在 hadoop 指定目录内仓建新 目录: hadoop fs -mkdir input将 factory.txt 文件夹存储至 hadoop: hadoop fs -put factory input 将 address .txt 文件夹存储至 hadoop: hadoop fs -put address inp ut 运行已经打包好的 MTJoin.java 文件:hadoop jar MTJoin.jar MTJoin input output查看运行结果:hadoop fs -cat output/part-r-00000输入查看结

19、果命令就会按要求输出“工厂名地址名”表,按工厂名排序输出。Tac匸。厂亡aaares&nameBack of BeijingBeijingBeijing RtsingBeijingiGuongzhou Development BankGuangzhouTencentShenzhenAlibabaFiangZhouShangHai IBMShangHaiWuHan HuaWeiWuHanIIII二、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和 结论等)1. 结果描述输入工厂表对应的文件factory. txt和地址表对应的文件address. txt,则按 要求输出了“工

20、厂名一一地址名”表。完成了实验要求。2. 实验现象分析在配置Hadoop的过程中遇到了很多问题,因为对Hadoop的不熟悉导致多次重 启系统,但是最后还是较好的完成了实现,在实验的规程中并没有出现过于严重的 问题。3. 影响因素讨论首先我们必须完成Hadoop的集群配置:安装Linux系统,推荐Ubuntu14.03, 建议直接使用hadoop作为用户安装、配置jdk、更改环境变量、配置ssh、用jps 验证集群是否配置成功,使用多台计算机连接主节点和多个次节点完成多台计算机 的并行分布。这些配置的过程对于该实验是非常重要的,只有搭建好了 Hadoop才 能完成该实验。同时设计好数据文件也会直

21、接影响数据的输出。4算法分析(包括时间和空间)若工厂表长度为N,地址表的长度为M,则时间复杂度为O(N*M),空间复杂度为 0(1)。第二部分:实验调试与结果分析(可加页)二、实验小结、建议及体会多表关联和单表关联相似,都类似于数据库中的自然连接。相比单表关联,多 表关联的左右表和连接列更加清楚。所以可以采用和单表关联的相同的处理方式, map识别出输入的行属于哪个表之后,对其进行分割,将连接的列值保存在key中, 另一列和左右表标识保存在value中,然后输出。reduce拿到连接结果之后,解 析value内容,根据标志将左右表内容分开存放,然后求笛卡尔积,最后直接输出。在进行该多表关联之前

22、我们必须完成Hadoop的集群配置:安装Linux系统,推荐 Ubuntul4.03、配置jdk、更改环境变量、配置ssh、用jps验证集群是否配置成功, 使用多台计算机连接主节点和多个次节点完成多台计算机的并行分布。然后设计代 表工厂表的fac tory. txt文件和代表地址表的address .txt文件,该文件作为输入 文件。输入“ hadoop fs -rmr out pu t”命令删除已经存在的out put文件夹(包括子 目录),输入“hadoop fs -mkdir input”命令在hadoop指定目录内创建新目录。 输入“hadoop fs -put factory input” 命令将 factory. txt 文件夹存储至 hadoop; 输入“hadoop fs -put address input” 命令将 address. txt 文件夹存储至 hadoop; 输入“ hadoop jar MTJoin.jar MTJoin input out put 命令运行已经打包好的 MTJoin.java 文件;输入“hadoop fs -cat output/part-r-00000命令查看运行 结果。运行结果就会输出“工厂名一一地址名”表。

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