毕业设计(论文)开题报告
课 题 名 称:
学 生 姓 名:
学 号:
指 导 教 师:
专 业 名 称: 计算机科学与技术
2014年 12 月 24 日
说 明
1.根据教育部对毕业设计(论文)的评估标准,学生必须撰写《毕业设计(论文)开题报告》,由指导教师签署意见、毕业设计(论文)指导小组审查,学院教学院长批准后实施。
2.开题报告是毕业设计(论文)答辩委员会对学生答辩资格审查的依据材料之一。学生应当在毕业设计(论文)工作前期内完成,开题报告不合格者不得参加答辩。
3.毕业设计开题报告各项内容要实事求是,逐条认真填写。其中的文字表达要明确、严谨,语言通顺,外来语要同时用原文和中文表达。第一次出现缩写词,须注出全称。
4.本报告中,由学生本人撰写的对课题和研究工作的分析及描述,应不少于2000字,没有经过整理归纳,缺乏个人见解仅仅从网上下载材料拼凑而成的开题报告按不合格论。
5.开题报告原则上在第七学期18周前完成,各教研室完成毕业设计开题检查后,各设计指导小组应写一份开题情况总结报告报学院。
南京中医药大学信息技术学院 毕业设计(论文)开题报告
学生姓名 指导教师姓名 课题来源 课题名称 内容: 功能要求: 1、安装Spark云计算技术系统 2、掌握Mllib、Graphx库 3、用标准Samples测试系统环境 4、研究基于Spark的健康分析算法 性能要求: 界面友好,运行稳定。 意义: 近几年来,随着计算机和信息技术的迅猛发展和普及应用,行业应用系统的规模迅速扩大,行业应用所产生的数据呈爆炸性增长。动辄达到数百TB甚至数十至数百PB规模的行业/企业大数据已远远超出了现有传统的计算技术和信息系统的处理能力,因此,寻求有效的大数据处理技术、方法和手段已经成为现实世界的迫切需求。开源社区推出了许多值得关注的大数据分析平台,而Spark就是其中的佼佼者。丁 艳 胡晨骏 学 号 职 称 教师科研 084211111 讲 师 专 业 所在单位 或部门 课题类型 计算机科学与技术 信息技术学院 应用研究 基于Spark的云计算技术的初步研究 毕业设计的内容和意义 Spark作为下一代云计算及大数据的核心技术,是Hadoop目前唯一替代者,能够做Hadoop做的一切事情,同时速度比Hadoop快了100倍以上。甚至在Hadoop最擅长的离线数据统计分析领域,Spark比Hadoop也至少快了一个几何级数;Spark另外一个无可取代的优势是:“One Stack to rule them all”,Spark采用一个统一的技术堆栈解决了云计算大数据包括如流处理、图技术、机器学习、NoSQL查询等方面的所有核心问题,具有完善的生态系统,这直接奠定了其一统云计算大数据领域的霸主地位。因此研究基于Spark的云计算技术,顺应了时代发展的需要,具有极其深远的意义。 文献综述基于Spark的云计算技术的初步研究 【摘要】 伴随着云计算、大数据相关技术和产业的逐步成熟,继Hadoop之后,Spark 以性能超Hadoop百倍,算法实现仅有其1/10或1/100, 星火燎原,正逐步加速成为大数据时代统一计算平台。基于Map Reduce的分布式计算方法使Spark类似于Hadoop,却又比Hadoop的通用性更好,迭代运算效率更高,容错能力更强,未来的Spark将会是非常成功的并行计算框架。 本文主要的研究内容包括:(1)在linux环境下编译安装Spark-0.9.0版本。(2)配置并搭建Scala环境。(3)搭建Eclipse环境。(4)用标准Samples测试系统环境。 【关键字】Spark, Scala,Eclipse 1.引言 如今,我们迎来了大数据时代。在这个大数据时代中,数据量爆炸式地增长,数据结构也变得更复杂化,形成了结构化数据、非结构化数据、半结构化数据并存的局面。因此,如何有效地存储和管理海量数据,成为这个时代的难点。为了解决以上的问题,研究并运用基于Spark的云计算技术对解决数据的存储与处理困难具有重大的意义。Spark是基于内存,是云计算领域的继Hadoop之后的下一代的最热门的通用的并行计算框架开源项目,尤其出色的支持Interactive Query、流计算、图计算等。 2.主要技术指标及研究方法 Spark技术代表未来数据处理的新方向,Spark是UC Berkeley AMP lab开源的类Hadoop MapReduce的通用并行计算框架,Spark基于MapReduce实现分布式计算,拥有Hadoop MapReduce具有的优点。不同于MapReduce的是,Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。 Spark的核心概念是RDD (resilient distributed dataset),RDD,全称为Resilient Distributed Datasets,是一个容错的、并行的数据结构,可以让用户显式地将数据存储到磁盘和内存中,并能控制数据的分区。同时,RDD还提供了一组丰富的操作来操作这些数据。在这些操作中,诸如map、flatMap、filter等转换操作实现了monad模式,很好地契合了Scala的集合操作。除此之外,RDD还提供了诸如join、groupBy、reduceByKey等更为方便的操作(注意,reduceByKey是action,而非transformation),以支持常见的数据运算。通常来讲,针对数据处理有几种常见模型,包括:Iterative Algorithms,Relational Queries,MapReduce,Stream Processing。例如Hadoop MapReduce采用了MapReduces模型,Storm则采用了Stream Processing模型。RDD混合了这四种模型,使得Spark可以应用于各种大数据处理场景。RDD作为数据结构,本质上是一个只读的分区记录集合。一个RDD可以包含多个分区,每个分区就是一个dataset片段。RDD可以相互依赖。如果RDD的每个分区最多只能被一个Child RDD的一个分区使用,则称之为narrow dependency;若多个Child RDD分区都可以依赖,则称之为wide dependency。不同的操作依据其特性,可能会产生不同的依赖。例如map操作会产生narrow dependency,而join操作则产生wide dependency。Spark之所以将依赖分为narrow与wide,基于两点原因。首先,narrow dependencies可以支持在同一个cluster node上以管道形式执行多条命令,例如在执行了map后,紧接着执行filter。相反,wide dependencies需要所有的父分区都是可用的,可能还需 要调用类似MapReduce之类的操作进行跨节点传递。其次,则是从失败恢复的角度考虑。narrow dependencies的失败恢复更有效,因为它只需要重新计算丢失的parent partition即可,而且可以并行地在不同节点进行重计算。而wide dependencies牵涉到RDD各级的多个Parent Partitions。 RDD提供了两方面的特性persistence和patitioning,用户可以通过persist与patitionBy函数来控制RDD的这两个方面。RDD的分区特性与并行计算能力(RDD定义了parallerize函数),使得Spark可以更好地利用可伸缩的硬件资源。若将分区与持久化二者结合起来,就能更加高效地处理海量数据。 RDD本质上是一个内存数据集,在访问RDD时,指针只会指向与操作相关的部分。例如存在一个面向列的数据结构,其中一个实现为Int的数组,另一个实现为Float的数组。如果只需要访问Int字段,RDD的指针可以只访问Int数组,避免了对整个数据结构的扫描。RDD将操作分为两类:transformation与action。无论执行了多少次transformation操作,RDD都不会真正执行运算,只有当action操作被执行时,运算才会触发。而在RDD的内部实现机制中,底层接口则是基于迭代器的,从而使得数据访问变得更高效,也避免了大量中间结果对内存的消耗。在实现时,RDD针对transformation操作,都提供了对应的继承自RDD的类型,例如map操作会返回MappedRDD,而flatMap则返回FlatMappedRDD。当我们执行map或flatMap操作时,不过是将当前RDD对象传递给对应的RDD对象而已。 RDD支持容错通常采用两种方式:数据复制或日志记录。对于以数据为中心的系统而言,这两种方式都非常昂贵,因为它需要跨集群网络拷贝大量数据,毕竟带宽的数据远远低于内存。RDD天生是支持容错的。首先,它自身是一个不变的(immutable)数据集,其次,它能够记住构建它的操作图(Graph of Operation),因此当执行任务的Worker失败时,完全可以通过操作图获得之前执行的操作,进行重新计算。由于无需采用replication方式支持容错,很好地降低了跨网络的数据传输成本。不过,在某些场景下,Spark也需要利用记录日志的方式来支持容错。例如,在Spark Streaming中,针对数据进行update操作,或者调用Streaming提供的window操作时,就需要恢复执行过程的中间状态。此时,需要通过Spark提供的checkpoint机制,以支持操作能够从checkpoint得到恢复。针对RDD的wide dependency,最有效的容错方式同样还是采用checkpoint机制。不过,似乎Spark的最新版本仍然没有引入auto checkpointing机制。 基于Spark的云计算技术,首先选用Linux作为开发平台,在该平台上编译安装Spark-0.9.0版本。其次,配置并搭建Scala环境,安装Eclipse。最后,用标准Samples测试系统环境。 3.结束语 在大数据领域,只有深挖数据科学领域,走在学术前沿,才能在底层算法和模型方面走在前面,从而占据领先地位。Spark的这种学术基因,使得它从一开始就在大数据领域建立了一定优势。
相关推荐: