还剩12页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
研究生学位论文开题报告报告题目大数据分析服务平台设计与实现学生姓名郑鹏学号201228015029046指导教师叶丹职称副研究员学位类别工学硕士学科专业计算机软件与理论研究方向网络分布式计算与软件工程培养单位软件研究所填表日期2014-6-20大学制填表说明
1.本表内容须真实、完整、准确
2.“学位类别”名称填写哲学博士、教育学博士、理学博士、工学博士、农学博士、医学博士、管理学博士,哲学硕士、经济学硕士、法学硕士、教育学硕士、文学硕士、理学硕士、工学硕士、农学硕士、医学硕士、管理学硕士等
3.“学科专业”名称填写“二级学科”全称9目录
一、选题的背景及意义随着互联网的快速发展,目前我们已处于数据、信息过载的海量信息时代用户面对海量信息却很难找到自己真正感兴趣的内容如何有效利用这些海量数据,从而产生实际的价值,已成为迫切需要解决的问题数据挖掘就是一个能够把海量数据变成可被人类可直接利用的信息,是一个“把冰冷信息人性化”的强有力的工具目前市场上已经有一些很成熟的数据挖掘平台,如Weka,Clementine,R等它们都集成了大量成熟、优秀的挖掘算法但是随着输入数据量的增加,这些工具显得力不从心对于大数据量的挖掘,它们可以采用先采样后挖掘的方法,但是这明显降低了挖掘结果的准确度随着Hadoop掀起的分布式计算热潮,分布式数据挖掘算法库Mahout应运而生虽然目前来看Mahout尚未十分成熟,但却已经引起了业界足够的关注配合上MapReduce分布式计算在数据预处理上显示出的强大的优势,分布式的数据处理,分析和挖掘已经成为一种趋势Hadoop生态系统中的分布式存储和计算能力,配合上Weka,R,Mahout等开源数据挖掘的分析能力,使得它们已成为很多公司和个人数据分析的有力工具虽然这些开源工具的存在减轻了数据分析和挖掘的负担,但是这些工具的异构性给数据分析工程师带来了新的困扰在一个完整的数据分析(尤其是大量数据分析)流程中,难免会用到多种平台和工具首先数据可能存储在不同的介质上,并且以不同的形式存储其次,数据处理过程中,数据量可大可小,如果数据量较小,为了操作简单,执行速度较快,分析人员可能编写Java程序对数据进行预处理如果数据量较大,简单的单机Java程序可能无法担此重任,此时用户可以编写MapReduce程序,分布式处理数据如果数据量较大,但数据呈现明显的行列关系,则可以将数据导入到Hive中进行处理此外,对于一般的数据挖掘操作,我们可以使用Weka或者R进行操作,因为他们都是十分成熟的挖掘工具,集成了很多挖掘算法但是如果训练数据十分巨大的情况下,这些单机的挖掘工具可能会造成无法忍受的性能瓶颈这时候在保证系统可用的前提下,工程师可能会选用Mahout作为挖掘工具正是分析需求和分析工具的多样性,极大地增加了数据分析工程师的工作量工程师不仅需要安装配置不同的分析工具,并且需要编写代码来协作这些工具也就是说工程师做了很多分析逻辑以外的工作为了将数据分析工程师从环境配置,数据处理,实验脚本编写等繁杂的工作中抽离出来,一个集成了异构分析工具的大数据分析服务平台是十分有必要的鉴于上面的种种问题,我们的目标是开发一个,以组件为设计单位的,具有拖拽式流程设计界面的,可以协同异构数据分析工具的,分布式的,服务化的,易用性高的,可扩展性强的,开放式的大数据分析服务平台从前端来看,开发人员通过拖拽和关联组件,完成整个分析流程的设计开发人员还可以通过组件管理界面发布自定义的组件,或者导入一组面向领域的可复用组件整个客户端体现很强的易用性和可扩展性从后端来看,大数据服务平台构建在分布式集群上,并且集成多种数据处理,分析和挖掘工具,并发地调度执行各个分析任务前端通过调用后端系统提供的RestfulAPI来完成前后台的通信从数据分析工程师的角度来看该平台可以屏蔽各个系统和工具的异构性,降低数据分析的难度,加快信息提取的速度从企业成本的角度来看首先,大数据分析平台可供多个用户同时向集群提交多个流程通过对这些多个流程的调度,不仅可以降低流程的平均执行时间,并且可以极大地提高了集群的利用率其次,拖拽式的开发极大的降低了对分析人员专业技能的要求,使得分析人员可以从算法编写,实验脚本编写等繁杂工作中抽离出来帮助企业缩短决策的时间,改进决策的过程总之,大数据分析服务平台不仅可以缩短公司投资回报周期,同时也可以提高公司投资回报率
二、国内外本学科领域的发展现状与趋势
1.数据挖掘平台现状随着数据挖掘学科的兴起,出现了越来越多的商业或免费的数据挖掘软件一般来说,可以分为两类,一类是针对特定领域的挖掘工具,一类是通用的挖掘工具这里我们主要研究通用的数据挖掘工具常用的商业挖掘工具包括SPSSClementine,KXEN等而比较受欢迎的开源或者免费的数据挖掘工具包括,Weka,R,RHadoop,Mahout等等Clementine和Weka产品定位很相似,都集成了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理,分类,回归、聚类、关联规则等此外,交互界面风格也相似,都支持拖拽式的数据分析流程设计它们的区别就是Clementine是商业化的收费软件,而Weka是开源的,可扩展的免费软件R是用于统计分析和绘图的一种语言和操作环境它不仅自带很强的统计分析功能,而且是一个开放式的平台,用户可以通过开发并安装扩展包增强R的功能RHadoop是由RevolutionAnalytics发起的将R与Hadoop无缝结合的一个开源项目该项目分为三个R扩展包,分别为支持用R来编写MapReduce应用的rmr扩展包、用于R语言访问HDFS的rhdfs扩展包以及用于R语言访问HBASE的rhbase扩展包MapReduce是这里面唯一利用分布式计算实现数据挖掘算法的工具相对于Weka和Clementine来说,它不仅没有友好的交互界面,而且集成的算法也较少,并且很多算法都不是最优的算法但是它为大数据的挖掘提供了可能性,单就这一点来说它的地位便是不容忽视的KXENAnalyticFramework是一款十分专业的商业化的挖掘软件相对于Weka,Clementine来说,它最大的一个特色就是它属于半自动化数据挖掘软件Self-Acting客户定制调优的空间比较小,在默认选项下,它的运行速度要相对于其它软件来得快,分析结果要来得精确类似的数据挖掘平台还有RapidMiner,KNIME等等我们正在开发的大数据分析平台主要有以下几方面的特色以组件为单位的,具有拖拽式流程设计界面;支持异构数据分析工具协同工作;基于分布式系统,可并发执行分析任务;服务化;可扩展,开放式的从这几个角度我调研了相关产品,得到以下表格表1数据挖掘平台功能调研表
2.分布式系统Hadoop现状2004年Google发表论文介绍了MapReduce2006年ApacheHadoop项目正式启动经过几年快速的发展,Hadoop生态系统已经日臻完善Hadoop生态系统中除了核心系统中的HDFS和MapReduce,还有Zookeeper,HBase,Hive,Pig,Mahout,Sqoop,Oozie等等这些项目共同提供了一个海量数据处理的分布式软件生态系统这正是我们完成大数据分析的必备基础图1Hadoop生态系统
3.流程执行引擎现状Oozie是Hadoop生态系统中的一员,用于管理和协调多个运行在Hadoop平台上的作业Oozie具有流程执行引擎必需的四个性质,分别为可扩展性,安全性,支持多租户和易用性其他常见的分布式流程执行引擎,至少都会缺少这四个性质之一Oozie的可扩展性包含两个方面,水平扩展和垂直扩展水平扩展是指增加服务器的数量,从而提高集群的总容量和计算资源垂直扩展是指提高集群中现有节点存储容量和计算能力Oozie支持多租户,也就是不同的用户可以同时登录到系统中,并提交任务Oozie将不同租户的信息存到一个公共的数据库中,并给每个租户一个ID号用户执行操作前都需要使用数据库中的信息对用户的权限进行验证Oozie支持基本的Kerberos授权机制和Unix系统的用户/组授权机制,以及用户自定义的授权机制,同时也支持多个授权机制并存Oozie提供了很多内置的机制来增加易用性当任务中的一个节点失败了,则Oozie引擎提供自动重试的功能当任务失败了,Oozie提供恢复功能,也就是说之前已经成功完成的任务会被恢复此外,Oozie支持通过Web客户端,命令行和JavaAPI等多种方式查看当前的执行状态在Hadoop集群资源充足的情况下,Yahoo已经验证单个Oozie服务进程每分钟可以接收1250个工作流任务(75K/hour)综上所述,Oozie是和Hadoop结合最紧密的,满足流程执行引擎必备的各种性质的,最适合我们的流程执行引擎
三、课题的主要研究内容、预期目标根据以上对数据挖掘工具,分布式大数据处理系统Hadoop和流程执行引擎的现状分析我们准备开发一个集成大数据存储、处理、分析和挖掘功能的开放式的大数据分析服务平台该平台提供一个方便用户管理资源,设计,提交分析流程的Web界面该平台主要面向数据分析工程师,给他们提供数据分析的一个一站式的开发环境通过调研我们准备采用以下技术方案大数据分析服务平台后端采用Hadoop分布式集群框架,集成HBase,Hive,Sqoop,Pig等分布式的数据处理工具和Mahout,Weka,R等开源免费的数据挖掘工具系统以组件的形式提供数据提取,处理,分析、挖掘等功能,用户可以将这些组件组合成分析流程,并提交给后台服务系统执行,流程执行引擎采用Hadoop生态系统中的一员Oozie系统前端提供资源管理界面和流程设计、执行,监控界面,使得用户可以方便快捷地完成整个数据数据处理,分析和挖掘的过程整个系统采用开发式的架构,用户不仅可以采用系统中提供的组件,并且可以开发自定义的组件,发布到平台中通过调研和实践,大数据分析平台决定采用一个三层的架构最上层是客户端,提供用户访问系统的接口中间层是服务层,提供流程管理和组件管理服务,供客户端调用底层是基础设施层,包括一些异构的数据处理,分析,挖掘的平台和工具此外,还有一组提供具体功能的组件库系统的组成框图,如下所示图2大数据分析服务系统组成框图
1.主要的研究内容
1.1基于流程的异构数据分析平台集成与协同框架
1.
1.1异构数据分析工具集成和协同用户在数据分析过程中可能用到很多工具或者平台,如HDFS存储MapReduce计算框架,Hive数据库Mahout大数据挖掘工具包用户自定义的Java程序Weka专业数据挖掘软件,R数据分析和绘图工具等异构平台和工具的集成是指,数据分析过程中可能用到的平台和工具全部部署在公共的分布式集群上,统一管理,用户不需要关心分析过程中用到的工具大数据分析平台以组件的形式提供数据处理,分析、挖掘等功能每个组件执行过程可以调用一个或多个不同的工具用户通过组合不同的组件,完成数据分析流程的设计,并提交给流程执行引擎去执行这其中设计的关键技术包括选择并扩展流程执行框架,使得流程执行框架可以协同这些工具
1.
1.2流程的验证,翻译,部署,执行,调度,监控等用户通过Web客户端拖拽组件形成分析流程执行流程提交后,服务器需要经过多步操作,最终才能完成流程的执行这些步骤包括流程的验证,翻译,部署,执行,调度,监控等流程的验证本身是一个很复杂的问题,我们希望错误可以尽早的发现,并反馈给用户因为有些组件执行时间可能很长,如果将所有错误都推迟到流程执行时采取判断的话,设计一个完全正确的设计流程可能会花费用户很长的时间,友好度会降低非常多流程翻译是指将用户设计的流程翻译成流程执行引擎所需要的表达方式我们肯定希望用户所有的流程都可以准确的翻译,准确不仅仅是指生成了执行引擎识别的原语,更重要的是我们翻译成的表达方式和用户希望表达的方式是一致的流程翻译完成后就需要将流程执行所需要的资源和配置文件都提交到后台集群上去,并部署到执行引擎可以访问到的位置涉及到的关键技术包括,分布式集群上资源的管理和查找流程执行是最重要的一个步骤,涉及到很多重要的技术首先,流程执行会生成很多中间数据,我们需要对这些中间数据的存储方式和生命周期进行合理的管理流程执行过程中涉及到了各种异构工具的协同,整个集群的调度策略非常关键,因为这直接影响到了集群的利用率和吞吐率流程执行过程中,用户需要一直监控流程的状态,并采取及时的措施我们会对流程执行的状态进行轮询,以日志的形式展示给用户流程执行结束之后,以将流程执行的状态图展示给用户,图中标识了流程的执行路径和每个节点的完成情况这一部分是整个系统的核心,涉及到很多技术难点其中对整个系统来说最重要的一点是如何针对我们的使用场景改进Oozie的调度策略,从而提高系统的资源利用率,加快流程的平均执行速度,平衡系统的负载
1.
1.3流程组件的管理(安装,卸载等)组件是流程执行的基本单位,一个流程可以由一个或者多个组件组成系统需要提供流程设计所必须的逻辑组件和必要的功能组件,如开始组件,结束组件,条件执行组件,分词组件,聚类组件等等根据开放性原则,系统也应该支持用户的自定义的组件用户遵循组件开发的规范,开发自己的组件并通过客户端上传组件上传之后用户就可以在Web客户端看到并使用该组件了,并可以提交由该组件构成的分析任务同样系统也应该支持用户通过客户端卸载之前上传的自定义组件,那么用户在客户端就不可以使用该组件了,并且包含该组件的流程都将无法通过流程验证组件的可扩展性非常重要,它直接决定了系统的可用性,用户可以通过定制领域组件,构建一个面向领域的大数据分析平台其中的技术难点是组件规范的定制和组件的管理
1.2数据分析流程的执行优化
1.
1.1中间数据并行分析流程执行时会产生海量的中间数据,这些中间数据的管理极大地影响着系统的性能首先,它们占用大量存储空间,需要对它们的生命周期进行管理,其次,中间数据分布式产生,需要在大量节点间进行传输,最后,中间数据如果不存储在HDFS上面,那中间数据的容错需要单独考虑总之,大量分析流程的并发运行,对中间数据的管理提出了挑战我们将研究如何控制中间数据,从而加快流程的执行速度,节省集群的存储空间
101.
1.2调度大数据分析服务平台是面向多租户的,当大量用户同时提交多个分析任务的时候,如何调度这些任务显得尤为关键调度策略的好坏直接影响到资源的利用率,系统的吞吐率和性能本论文研究重点是如何调整当前的调度策略,优化现有的流程执行引擎,降低流程的平均执行时间
1.3面向领域的数据分析组件的设计与应用案例研究总体来讲,组件分为两类,一类是逻辑组件,一类是功能组件逻辑组件包括开始组件,结束组件,条件判断组件,多路组件等等功能组件根据不同的用途可以分为,数据资源组件,数据处理组件,数据分析组件,数据挖掘组件,数据展示组件等等从组件适用的领域来讲,组件又可以分为面向医疗领域的组件,面向大规模社会计算网络的组件,面向生物计算的组件等等从组件管理的角度来讲,分为固定组件和自定义组件固定组件指的是系统自带的且不能修改和卸载的一系列组件,所有的逻辑组件都应该是固定组件,常用的功能组件也应该成为固定组件比如Hive组件用户通过配置HiveQL语句,执行Hive操作分词组件用户通过配置文本数据的位置,对该文本执行分词操作聚类组件用户通过配置聚类算法,聚类参数,输入文件位置等,对文件中的数据执行聚类操作数据采样组件用户通过配置采样策略,采样数据源的文件位置等,对数据进行采样为了验证该平台,我们还会开发一组面向医疗的领域组件验证该平台不仅可以极大降低数据分析工程师的工作量,加快流程分析的进度,并且可以通过并发缩短分析流程的平均执行时间,提高系统资源的利用率
2.预期目标完成大数据分析平台的所有功能需求,包括异构数据分析工具的集成和协同,流程的验证,翻译,部署,执行,调度,监控等功能的实现,组件管理功能的实现,基本组件的设计、开发和一个易用的Web客户端的开发最终完成一个以组件为单位的,具有拖拽式流程设计界面的;支持异构数据分析工具协同工作的;基于分布式系统,可并发执行分析任务的;服务化的;可扩展的,开放式的大数据分析服务平台14
四、拟采用的研究方法、技术路线、实验方案及其可行性分析
1.研究方法本课题拟采用文献研究法和实验对比法试用已有的相关软件,从中提炼用户的需求和实现方案,减轻需求提取的工作量学习已有的研究成果和开源项目,选择本课题适合的技术和方法可以通过查找相关论文,分析相关产品的技术报告和用户手册,阅读开源项目的源码来完成从而达到减低系统的开发难度和加快系统的开发速度的效果通过对系统进行横向和纵向的对比实验,不断提升系统的性能
2.技术路线尽量采用成熟的技术方案和常用的工具,比如前端页面总体上Dojo开发,流程拖拽功能使用JsPlumb库来完成服务器层使用SpringMVC,并遵循Restful风格来定义访问接口使用现有的分布式流程执行引擎Oozie,在此基础上扩展它对异构工具的支持,改进其现有调度策略
3.实验方案系统的可用性验证系统开发完成后会在实验室内部发布内测版本,让大家使用并提出意见系统的可扩展性和易用性验证系统开发过程中会同时开发一些面向领域的组件和应用,同时对系统的可扩展性和易用性做出验证系统的优势验证通过横向和纵向的对比实验,验证系统的优势横向指的是系统自身的对比,如改变调度策略前和改变调度策略后作对比纵向对比指的是和其他开发方法相比,得出大数据分析服务平台对工作效能的提升比例
4.可行性分析实验室提供的资源满足我们开发、测试所需要的环境,无需采购新的设备项目组配备有固定开发人员,我们都有固定的工作时间,可以很方便地交流这些开发人员都具有相关技术的开发经验项目组已经对项目的技术难点进行了调研,并编写了简单的测试用例采用的技术(如SpringMVC,Hadoop,Weka等)都比较成熟,有丰富的资料和文档应对开发过程中可能遇到的问题
五、已有科研基础与所需的科研条件实验室配备有多个Hadoop集群,集群的规模从1个节点到16个节点不等目前已完成一个8节点的分布式集群的搭建,并且部署了Hadoop,Oozie,Hive,Mahout等相关工具组里的成员对于Hadoop生态系统中的各种工具都很熟悉,并且阅读和修改过部分源码,有很好的技术支持该项目和实验室的其它项目使用到了一些相同的技术,如实验室的CloudShare也使用到了SpringMVC,Ajax,HDFS等技术,可以相互借鉴今年3月份完成了一个数据挖掘比赛的课题,分别实现了该数据挖掘任务的单机版和大数据版本,可以作为大数据分析平台的一个应用案例
六、研究工作计划与进度安排表2研究工作计划于进度安排表
七、参考文献
[1].SanjayGhemawatHowardGobioffandShun-TakLeung.
2003.TheGooglefilesystem.SIGOPSOper.Syst.Rev.375October200329-
43.
[2].JeffreyDeanandSanjayGhemawat.
2008.MapReduce:simplifieddataprocessingonlargeclusters.Commun.ACM511January2008107-
113.
[3].MohammadIslamAngeloK.HuangMohamedBattishaMichelleChiangSanthoshSrinivasanCraigPetersAndreasNeumannandAlejandroAbdelnur.
2012.Oozie:towardsascalableworkflowmanagementsystemforHadoop.InProceedingsofthe1stACMSIGMODWorkshoponScalableWorkflowExecutionEnginesandTechnologiesSWEET
12.ACMNewYorkNYUSAArticle410pages.
[4].Hadoop.http://hadoop.apache.org/
[5].Oozie.http://oozie.apache.org/docs/
[6].Mahout.http://mahout.apache.org/
[7].Weka.http://weka.wikispaces.com/
[8].R.http://www.r-project.org/
[9].KXEN数据挖掘介绍.http://www.dataguru.cn/article-122-
1.html
[10].R-Hadoop.http://bighadoop.wordpress.com/2014/02/25/r-and-hadoop-data-analysis-rhadoop/产品名称数据处理设计方式开扩展服务化免费成熟度分布式HaFlow支持拖拽是是开源未知支持Weka不支持拖拽是否开源成熟不支持Mahout不支持编码是否开源不成熟支持R不支持编码是否开源成熟不支持R-Hadoop支持编码是否开源不成熟半支持Clementine不支持拖拽否否收费成熟不支持KXEN不支持向导是否收费成熟不支持开始时间结束时间任务安排2014年4月2014年7月收集相关资料,完成初期调研,撰写开题报告2014年7月2014年8月搭建原型系统,完成基本功能2014年8月2014年9月完成系统固定组件的设计与实现2014年9月2014年11月完成面向医疗领域案例分析,完善系统2014年11月2014年2月系统优化,主要研究如何调度多个流程,提升系统资源利用率,减低流程的平均执行时间2014年2月2014年4月总结工作,形成论文。