开题报告大数据分析服务平台设计与实现_第1页
开题报告大数据分析服务平台设计与实现_第2页
开题报告大数据分析服务平台设计与实现_第3页
开题报告大数据分析服务平台设计与实现_第4页
开题报告大数据分析服务平台设计与实现_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

研究生学位论文开题报告报告题目大数据分析服务平台设计与实现 学生姓名郑鹏学号 201228015029046 指导教师叶丹职称副研究员 学位类别工学硕士 学科专业计算机软件与理论 研究方向网络分布式计算与软件工程 培养单位软件研究所 填表日期2014-6-20 大学制填 表 说 明1.本表内容须真实、完整、准确。2.“学位类别”名称填写:哲学博士、教育学博士、理学博士、工学博士、农学 博士、医学博士、管理学博士,哲学硕士、经济学硕士、法学硕士、教育学 硕士、文学硕士、理学硕士、工学硕士、农学硕士、医学硕士、管理学硕士等。3.“学科专业”名称填写: “二级学科”全称。9目录一、选题的背景及意义4二、国内外本学科领域的发展现状与趋势51.数据挖掘平台现状52.分布式系统 Hadoop 现状63.流程执行引擎现状7三、课题的主要研究内容、预期目标81.主要的研究内容91.1基于流程的异构数据分析平台集成与协同框架91.2数据分析流程的执行优化101.3面向领域的数据分析组件的设计与应用案例研究112.预期目标11四、拟采用的研究方法、技术路线、实验方案及其可行性分析121.研究方法122.技术路线123.实验方案124.可行性分析12五、已有科研基础与所需的科研条件13六、研究工作计划与进度安排13七、参考文献13一、选题的背景及意义随着互联网的快速发展,目前我们已处于数据、信息过载的海量信息时代。 用户面对海量信息却很难找到自己真正感兴趣的内容。如何有效利用这些海量数 据,从而产生实际的价值,已成为迫切需要解决的问题。数据挖掘就是一个能够 把海量数据变成可被人类可直接利用的信息,是一个“把冰冷信息人性化”的强 有力的工具。目前市场上已经有一些很成熟的数据挖掘平台,如 Weka,Clementine,R 等。它们都集成了大量成熟、优秀的挖掘算法。但是随着输入数据量的增加,这 些工具显得力不从心。对于大数据量的挖掘,它们可以采用先采样后挖掘的方法, 但是这明显降低了挖掘结果的准确度。随着 Hadoop 掀起的分布式计算热潮,分 布式数据挖掘算法库 Mahout 应运而生。虽然目前来看 Mahout 尚未十分成熟, 但却已经引起了业界足够的关注。配合上 MapReduce 分布式计算在数据预处理 上显示出的强大的优势,分布式的数据处理,分析和挖掘已经成为一种趋势。 Hadoop 生态系统中的分布式存储和计算能力,配合上 Weka, R,Mahout 等开 源数据挖掘的分析能力,使得它们已成为很多公司和个人数据分析的有力工具。虽然这些开源工具的存在减轻了数据分析和挖掘的负担,但是这些工具的异 构性给数据分析工程师带来了新的困扰。在一个完整的数据分析(尤其是大量数 据分析)流程中,难免会用到多种平台和工具。首先数据可能存储在不同的介质 上,并且以不同的形式存储。其次,数据处理过程中,数据量可大可小,如果数 据量较小,为了操作简单,执行速度较快,分析人员可能编写 Java 程序对数据 进行预处理。如果数据量较大,简单的单机 Java 程序可能无法担此重任,此时 用户可以编写 MapReduce 程序,分布式处理数据。如果数据量较大,但数据呈 现明显的行列关系,则可以将数据导入到 Hive 中进行处理。此外,对于一般的 数据挖掘操作,我们可以使用 Weka 或者 R 进行操作,因为他们都是十分成熟的 挖掘工具,集成了很多挖掘算法。但是如果训练数据十分巨大的情况下,这些单 机的挖掘工具可能会造成无法忍受的性能瓶颈。这时候在保证系统可用的前提 下,工程师可能会选用 Mahout 作为挖掘工具。正是分析需求和分析工具的多样性,极大地增加了数据分析工程师的工作 量。工程师不仅需要安装配置不同的分析工具,并且需要编写代码来协作这些工 具。也就是说工程师做了很多分析逻辑以外的工作。为了将数据分析工程师从环 境配置,数据处理,实验脚本编写等繁杂的工作中抽离出来,一个集成了异构分 析工具的大数据分析服务平台是十分有必要的。鉴于上面的种种问题,我们的目标是开发一个,以组件为设计单位的,具有 拖拽式流程设计界面的,可以协同异构数据分析工具的,分布式的,服务化的, 易用性高的,可扩展性强的,开放式的大数据分析服务平台。从前端来看,开发人员通过拖拽和关联组件,完成整个分析流程的设计。开发人员还可以通过组件 管理界面发布自定义的组件,或者导入一组面向领域的可复用组件。整个客户端 体现很强的易用性和可扩展性。从后端来看,大数据服务平台构建在分布式集群 上,并且集成多种数据处理,分析和挖掘工具,并发地调度执行各个分析任务。 前端通过调用后端系统提供的 Restful API 来完成前后台的通信。从数据分析工程师的角度来看。该平台可以屏蔽各个系统和工具的异构性, 降低数据分析的难度,加快信息提取的速度。从企业成本的角度来看。首先,大 数据分析平台可供多个用户同时向集群提交多个流程。通过对这些多个流程的调 度,不仅可以降低流程的平均执行时间,并且可以极大地提高了集群的利用率。 其次,拖拽式的开发极大的降低了对分析人员专业技能的要求,使得分析人员可 以从算法编写,实验脚本编写等繁杂工作中抽离出来。帮助企业缩短决策的时间, 改进决策的过程。总之,大数据分析服务平台不仅可以缩短公司投资回报周期, 同时也可以提高公司投资回报率。二、国内外本学科领域的发展现状与趋势1.数据挖掘平台现状随着数据挖掘学科的兴起,出现了越来越多的商业或免费的数据挖掘软件。 一般来说,可以分为两类,一类是针对特定领域的挖掘工具,一类是通用的挖掘 工具。这里我们主要研究通用的数据挖掘工具。常用的商业挖掘工具包括 SPSS Clementine,KXEN 等。而比较受欢迎的开源或者免费的数据挖掘工具包括,Weka, R,RHadoop,Mahout 等等。Clementine 和 Weka 产品定位很相似,都集成了大量能承担数据挖掘任务的 机器学习算法,包括对数据进行预处理,分类,回归、聚类、关联规则等。此外, 交互界面风格也相似,都支持拖拽式的数据分析流程设计。它们的区别就是 Clementine 是商业化的收费软件,而 Weka 是开源的,可扩展的免费软件。R 是用于统计分析和绘图的一种语言和操作环境。它不仅自带很强的统计分 析功能,而且是一个开放式的平台,用户可以通过开发并安装扩展包增强 R 的功 能。RHadoop 是由 Revolution Analytics 发起的将 R 与 Hadoop 无缝结合的一个开 源项目。该项目分为三个 R 扩展包,分别为:支持用 R 来编写 MapReduce 应用 的 rmr 扩展包、用于 R 语言访问 HDFS 的 rhdfs 扩展包以及用于 R 语言访问 HBASE 的 rhbase 扩展包。MapReduce 是这里面唯一利用分布式计算实现数据挖掘算法的工具。相对 于 Weka 和 Clementine 来说,它不仅没有友好的交互界面,而且集成的算法也较 少,并且很多算法都不是最优的算法。但是它为大数据的挖掘提供了可能性,单 就这一点来说它的地位便是不容忽视的。KXEN Analytic Framework 是一款十分专业的商业化的挖掘软件。相对于 Weka,Clementine 来说,它最大的一个特色就是它属于半自动化数据挖掘软件 (Self-Acting)。客户定制调优的空间比较小,在默认选项下,它的运行速度要相对 于其它软件来得快,分析结果要来得精确。类似的数据挖掘平台还有:RapidMiner,KNIME 等等。 我们正在开发的大数据分析平台主要有以下几方面的特色:以组件为单位的,具有拖拽式流程设计界面;支持异构数据分析工具协同工作;基于分布式系统,可并发执行分析任务;服务化;可扩展,开放式的 从这几个角度我调研了相关产品,得到以下表格:表 1 数据挖掘平台功能调研表产品名称数据处理设计方式开扩展服务化免费成熟度分布式HaFlow支持拖拽是是开源未知支持Weka不支持拖拽是否开源成熟不支持Mahout不支持编码是否开源不成熟支持R不支持编码是否开源成熟不支持R-Hadoop支持编码是否开源不成熟半支持Clementine不支持拖拽否否收费成熟不支持KXEN不支持向导是否收费成熟不支持2.分布式系统 Hadoop 现状2004 年 Google 发表论文介绍了 MapReduce。2006 年 Apache Hadoop 项目正 式启动。经过几年快速的发展,Hadoop 生态系统已经日臻完善。Hadoop 生态系 统中除了核心系统中的 HDFS 和 MapReduce,还有 Zookeeper,HBase,Hive,Pig,Mahout,Sqoop,Oozie 等等。这些项目共同提供了一个海量数据处理的分布式 软件生态系统。这正是我们完成大数据分析的必备基础。图 1 Hadoop 生态系统3.流程执行引擎现状Oozie 是 Hadoop 生态系统中的一员,用于管理和协调多个运行在 Hadoop 平 台上的作业。Oozie 具有流程执行引擎必需的四个性质,分别为可扩展性,安全 性,支持多租户和易用性。其他常见的分布式流程执行引擎,至少都会缺少这四 个性质之一。Oozie 的可扩展性包含两个方面,水平扩展和垂直扩展。水平扩展是指增加 服务器的数量,从而提高集群的总容量和计算资源。垂直扩展是指提高集群中现 有节点存储容量和计算能力。Oozie 支持多租户,也就是不同的用户可以同时登录到系统中,并提交任务。 Oozie 将不同租户的信息存到一个公共的数据库中,并给每个租户一个 ID 号。用 户执行操作前都需要使用数据库中的信息对用户的权限进行验证。Oozie 支持基本的 Kerberos 授权机制和 Unix 系统的用户/组授权机制,以及 用户自定义的授权机制,同时也支持多个授权机制并存。Oozie 提供了很多内置的机制来增加易用性。当任务中的一个节点失败了, 则 Oozie 引擎提供自动重试的功能。当任务失败了,Oozie 提供恢复功能,也就 是说之前已经成功完成的任务会被恢复。此外,Oozie 支持通过 Web 客户端,命 令行和 Java API 等多种方式查看当前的执行状态。在 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 库来完成。 服务器层使用 Spring MVC,并遵循 Restful 风格来定义访问接口。 使用现有的分布式流程执行引擎 Oozie,在此基础上扩展它对异构工具的支持,改进其现有调度策略。3.实验方案系统的可用性验证:系统开发完成后会在实验室内部发布内测版本,让大家 使用并提出意见。系统的可扩展性和易用性验证:系统开发过程中会同时开发一些面向领域的 组件和应用,同时对系统的可扩展性和易用性做出验证。系统的优势验证:通过横向和纵向的对比实验,验证系统的优势。横向指的 是系统自身的对比,如改变调度策略前和改变调度策略后作对比。纵向对比指的 是和其他开发方法相比,得出大数据分析服务平台对工作效能的提升比例。4.可行性分析实验室提供的资源满足我们开发、测试所需要的环境,无需采购新的设备。项目组配备有固定开发人员,我们都有固定的工作时间,可以很方便地交流。 这些开发人员都具有相关技术的开发经验。项目组已经对项目的技术难点进行了调研,并编写了简单的测试用例。采用 的技术(如 Spring MVC,Hadoop,Weka 等)都比较成熟,有丰富的资料和文档 应对开发过程中可能遇到的问题。五、已有科研基础与所需的科研条件实验室配备有多个 Hadoop 集群,集群的规模从 1 个节点到 16 个节点不等。 目前已完成一个 8 节点的分布式集群的搭建,并且部署了 Hadoop,Oozie,Hive, Mahout 等相关工具。组里的成员对于 Hadoop 生态系统中的各种工具都很熟悉, 并且阅读和修改过部分源码,有很好的技术支持。该项目和实验室的其它项目使用到了一些相同的技术,如实验室的 Cloud Share 也使用到了 Spring MVC,Ajax,HDFS 等技术,可以相互借鉴。今年 3 月份完成了一个数据挖掘比赛的课题,分别实现了该数据挖掘任务的 单机版和大数据版本,可以作为大数据分析平台的一个应用案例。六、研究工作计划与进度安排表 2 研究工作计划于进度安排表开始时间结束时间任务安排2014 年 4 月2014 年 7 月收集相关资料,完成初期调研,撰写开题报告。2014 年 7 月2014 年 8 月搭建原型系统,完成基本功能2014 年 8 月2014 年 9 月完成系统固定组件的设计与实现2014 年 9 月2014 年 11 月完成面向医疗领域案例分析,完善系统。2014 年 11 月2014 年 2 月系统优化,主要研究如何调度多个流程,提升系统 资源利用率,减低流程的平均执行时间。2014 年 2 月2014 年

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论