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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

厦门大学林子雨编著.docx

1、厦门大学林子雨编著厦门大学林子雨编著大数据技术原理与应用教材配套上机练习图计算框架Hama的基础操作实践(版本号:2016年1月24日版本)主讲教师:林子雨厦门大学数据库实验室二零一六年一月(版权所有,请勿用于商业用途)目录1 作业题目 12 作业目的 13 作业性质 14 作业考核方法 15 作业提交日期与方式 16 作业准备 16.1、 Hama计算框架的安装配置 16.2、用Hama计算模型实现寻找最大独立集问题算法 47 作业内容 98 实验报告 9附录1:任课教师介绍 9附录2:课程教材介绍 10附录3:中国高校大数据课程公共服务平台介绍 11厦门大学林子雨编著大数据技术原理与应用教

2、材配套上机练习图计算框架Hama基础操作实践上机练习说明主讲教师:林子雨E-mail: ziyulin 个人主页:1 作业题目图计算框架Hama基础操作实践。2 作业目的 旨在让学生了解Pregel图计算模型,并学会用Pregel的开源实现Hama实现一些基本操作。3 作业性质 课后作业,必做,作为课堂平时成绩。4 作业考核方法 提交上机实验报告,任课老师根据上机实验报告评定成绩。5 作业提交日期与方式 图计算章节内容结束后的下一周周六晚上9点之前提交。6 作业准备 请阅读厦门大学林子雨编著的大数据专业教材大数据技术原理与应用(官网:6.1、 Hama计算框架的安装配置Apache Hama是

3、Google Pregel的开源实现,与Hadoop适合于分布式大数据处理不同,Hama主要用于分布式的矩阵、graph、网络算法的计算。简单说,Hama是在HDFS上实现的BSP(Bulk Synchronous Parallel)计算框架,弥补Hadoop在计算能力上的不足。(1). 安装好合适版本的jdk和hadoop,并且进行测试,保证他们能用。(2). 下载hama安装文件,从http:/hama.apache.org/downloads.html处下载合适的版本,我当时下的是0.6.4版本的。(3). 在用户主目录下创建合适的安装目录文件,我这里是在下创建了hama文件夹作为安装目

4、录,即/hama为安装目录。(4). 将下载好的hama-0.6.4.tar.gz拷贝到/hama中去,并用tar zvxf hama-0.6.4.tar.gz进行解压。(5). 进入hama-0.6.4中的conf文件夹,修改hama-env.sh文件,在其中加入java的home路径,即加入:Export JAVA_HOME=/home/wanglianping/java/jdk.1.7.0_91(6). 修改hama-site.xml文件,这时hama配置的核心文件,具体内容如下: bsp.master.address 192.168.91.128:40000 The address o

5、f the bsp master server. Either the literal string local or a host:port for distributed mode fs.default.name hdfs:/192.168.91.128:9000/ The name of the default file system. Either the literal string local or a host:port for HDFS. hama.zookeeper.quorum192.168.91.128Comma separated list of servers in

6、the ZooKeeper Quorum. For example, ,. By default this is set to localhost for local and pseudo-distributed modes of operation. For a fully-distributed setup, this should be set to a full list of ZooKeeper quorum servers. If HAMA_MANAGES_ZK is set in hama-env.sh this is the list of servers which we w

7、ill start/stop zookeeper on. hama.zookeeper.property.clientPort 2181 其中,bsp.master.address即bsp中的BSPMaster的地址和端口。fs.default.name这个值要特别注意,是hadoop中nameNode的地址和端口,因为hama要用到hadoop的hdfs分布式文件系统。剩下的俩个是zookeeper的相关配置。(7).另外,在conf文件夹下还有一个groomservers文件,这个在分布式环境下配置groomserver的地址,在单机模式下就不用配置了,里面默认值为localhost。同时

8、,你也可以在/.bashrc中添加hama的环境变量,这样每次启动就不同转到相应的目录下去了。(8). 启动hadoop,并验证是否启动成功。命令:HADOOP_HOME/bin/start-all.sh,如果启动成功,如下:启动hama,命令:HAMA_HOME/bin/start-bspd.sh,结果如下:出现上述结果,则表明hama已经成功启动。6.2、用Hama计算模型实现寻找最大独立集问题算法 (1). 本算法参考 Lubys classic parallel algorithma simple parallel algorithm for maximal independent s

9、et problem,把顶点分为三类: 1) S:The MIS being constructed. Starts empty and grows in iterations. 2) NotInS: Vertices that have at least one edge to a vertex in S and as a result cannot be in S. 3) Unknown: Vertices that do not have an edge to any vertex in S but are not yet in S.(2).Hama模型下 MIS(Maximal Ind

10、ependent Set)算法描述。1)初始时,把所有顶点的value值赋值为自己的vertexID,表明初始所有顶点均在 UnKnown 集合中,然后把自己的VertexID发送给邻接顶点。2) 若顶点u的VertexID比自己所有邻接顶点都小,则该顶点进入 S 集合中,并发送neighbor-in-set 消息给所有邻接顶点,通知它们退出Unknown集合进入到NotInS集合中,并最后把u置为InActive状态;否则,顶点u继续保持UnKnown状态。3) S集合中顶点的邻接顶点收到neighbor-in-set 消息,则该顶点进入NotInS,并且设置为 Inactive状态。返回继

11、续迭代,直到UnKnown集合为空。(3). 程序中按照顶点value取值不同来区分顶点的类别,具体如下:1) value 等于 vertexID ,表示顶点在 Unknown 集合中; 2) value 等于 -1 ,表示顶点在 S 集合中 3) value 等于 -2 ,表示顶点在 NotInS 集合中。当所有顶点进入S或者NotInS集合中,就停止计算,表明已找到一个 MIS。源码如下:package graph.mis;import java.io.IOException;import java.util.Iterator;import org.apache.hadoop.conf.C

12、onfiguration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.NullWritable;import org.apache.hadoop.io.Text;import org.apache.hama.HamaConfiguration;import org.apache.hama.bsp.HashPartitioner;import org.apache.hama.bsp.TextInputFormat;import org.a

13、pache.hama.bsp.TextOutputFormat;import org.apache.hama.graph.Edge;import org.apache.hama.graph.GraphJob;import org.apache.hama.graph.Vertex;import org.apache.hama.graph.VertexInputReader;public class FindMIS public static class MISVertex extends Vertex Override public void compute(Iterator messages)

14、 throws IOException if (getSuperstepCount() = 0) setValue(getVertexID(); sendMessageToNeighbors(getValue(); else if(getValue().get()=-2) voteToHalt(); else boolean revMsg = false; while (messages.hasNext() revMsg = true; long msg = messages.next().get(); if (msg = -2) setValue(new LongWritable(-2);

15、voteToHalt(); return; else if (msg getValue().get() return; if (revMsg) setValue(new LongWritable(-1); sendMessageToNeighbors(new LongWritable(-2); voteToHalt(); else sendMessageToNeighbors(getValue(); public static class MISTextReader extends VertexInputReader Override public boolean parseVertex(Lo

16、ngWritable key, Text value, Vertex vertex) throws Exception String split = value.toString().split(t); for (int i = 0; i split.length; i+) if (i = 0) vertex.setVertexID(new LongWritable(Long.parseLong(spliti); else vertex.addEdge(new Edge( new LongWritable(Long.parseLong(spliti), null); return true;

17、public static void main(String args) throws IOException, InterruptedException, ClassNotFoundException if (args.length 2) System.err.println(Usage: ); System.exit(-1); HamaConfiguration conf = new HamaConfiguration(new Configuration(); GraphJob pageJob = new GraphJob(conf, FindMIS.class); pageJob.set

18、JobName(Find a MIS); pageJob.setMaxIteration(30); pageJob.setVertexClass(MISVertex.class); pageJob.setInputPath(new Path(args0); pageJob.setOutputPath(new Path(args1); pageJob.setVertexIDClass(LongWritable.class); pageJob.setVertexValueClass(LongWritable.class); pageJob.setEdgeValueClass(NullWritabl

19、e.class); pageJob.setInputKeyClass(LongWritable.class); pageJob.setInputValueClass(Text.class); pageJob.setInputFormat(TextInputFormat.class); pageJob.setVertexInputReaderClass(MISTextReader.class); pageJob.setPartitioner(HashPartitioner.class); pageJob.setOutputFormat(TextOutputFormat.class); pageJ

20、ob.setOutputKeyClass(Text.class); pageJob.setOutputValueClass(LongWritable.class); pageJob.waitForCompletion(true); (4). 运行过程分析。输入为无向图,测试图如下:下面分析S集合中的顶点用深蓝色标注,NotInS集合用网状图案标注,UnKnown集合用白色标注。S集合和NotInS集合中的顶点均是InActive状态,UnKnown集合中的顶点是Active状态。1) 步骤1:在SuperStep 0,每个顶点把自己的VertexID发送给邻接顶点,,如顶点0发送消息0到顶点1

21、、4、6;顶点1发送消息1到顶点0、3;顶点6发送消息6到顶点0、4、5。其他顶点类似。2)步骤2:在SuperStep 1,每个顶点收到邻接顶点发送的消息,如顶点0收到消息1、4、6,;顶点1收到消息0、3;只有顶点0比邻接顶点都小,故该顶点进入S 集合,用深蓝色标注。其他顶点继续在UnKnown集合中。3).步骤3和步骤1(步骤1属于第二轮), 在SuperStep2中,顶点0的邻接顶点收到neighbor-in-set 消息(源码中用-2表示)进入NotInS集合中,即顶点1、4、6共3个顶点进入NotInS集合中,变为InActive状态。同时顶点2、3、5依然是UnKnown状态,2

22、、3、5分别向邻接顶点发送消息,顶点2向4、5发送消息;顶点3向1、5发送消息;顶点5向2、3、6发送消息。 4) .步骤2(第二轮):在SuperStep 3中,NotInS集合中的顶点1、6和4收到消息后被系统自动激活变为Active状态,所以程序中对此情况有所处理,把顶点1、6、4直接置为Inactive状态,不做后续处理。顶点2、3收到消息5比自身大,则2、3进入S集合中,而顶点5则相反继续在UnKnown集合中。顶点2、3向邻接顶点1、4、5发送neighbor-in-set消息。 5) 步骤3(第二轮):在SuperStep 4中,顶点1和顶点4同(4)步处理相同。顶点5收到nei

23、ghbor-in-set 消息后进入 NotInS集合中。由于UnKnown集合中已没有顶点,不会再向外发送消息。 6) SuperStep 5中,发现已没有活跃顶点且没有消息在传递,故结束计算。(5). 实验结果HDFS的输出结果如下(-2表示NotInS,-1表示在S集合中):0 -14 -22 -13 -16 -25 -21 -27 作业内容作业内容:用Hama编程实现教材中的单源最短路径问题。请同学们参照前面的Hama的操作示例,完成这个习题,教材有相应的算法思想,完成后需要提交实验报告。8 实验报告大数据技术基础实验报告题目:图计算框架Hama基础操作实践姓名日期实验环境:实验内容与

24、完成情况:出现的问题:解决方案(列出遇到的问题和解决办法,列出没有解决的问题): 附录1:任课教师介绍林子雨(1978),男,博士,厦门大学计算机科学系助理教授,主要研究领域为数据库,实时主动数据仓库,数据挖掘.主讲课程:大数据技术基础办公地点:厦门大学海韵园科研2号楼E-mail: ziyulin个人主页:数据库实验室网站:附录2:课程教材介绍大数据技术原理与应用概念、存储、处理、分析与应用,由厦门大学计算机科学系教师林子雨博士编著,是中国高校第一本系统介绍大数据知识的专业教材。本书定位为大数据技术入门教材,为读者搭建起通向“大数据知识空间”的桥梁和纽带,以“构建知识体系、阐明基本原理、引导

25、初级实践、了解相关应用”为原则,为读者在大数据领域“深耕细作”奠定基础、指明方向。全书共有13章,系统地论述了大数据的基本概念、大数据处理架构Hadoop、分布式文件系统HDFS、分布式数据 库HBase、NoSQL数据库、云数据库、分布式并行编程模型MapReduce、流计算、图计算、数据可视化以及大数据在互联网、生物医学和物流等各个领域的应用。在Hadoop、HDFS、HBase和MapReduce等重要章节,安排了入门级的实践操作,让读者更好地学习和掌握大数据关键技术。 本书可以作为高等院校计算机专业、信息管理等相关专业的大数据课程教材,也可供相关技术人员参考、学习、培训之用。欢迎访问大

26、数据技术原理与应用概念、存储、处理、分析与应用教材官方网站:扫一扫访问教材官网附录3:中国高校大数据课程公共服务平台介绍中国高校大数据课程公共服务平台,由中国高校首个“数字教师”的提出者和建设者林子雨老师发起,由厦门大学数据库实验室全力打造,由厦门大学云计算与大数据研究中心、海峡云计算与大数据应用研究中心携手共建。这是国内第一个服务于高校大数据课程建设的公共服务平台,旨在促进国内高校大数据课程体系建设,提高大数据课程教学水平,降低大数据课程学习门槛,提升学生课程学习效果。平台服务对象涵盖高校、教师和学生。平台为高校开设大数据课程提供全流程辅助,为教师开展教学工作提供一站式服务,为学生学习大数据课程提供全方位辅导。平台重点打造“9个1工程”,即1本教材(含官网)、1个教师服务站、1个学生服务站、1个公益项目、1堂巡讲公开课、1个示范班级、1门在线课程、1个交流群(QQ群、微信群)和1个保障团队。平台主页:扫一扫访问平台主页

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

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