基于hadoop的校园应用托管平台研究报告(编辑修改稿)内容摘要:
EE 开发平台上进行开发实施,基于 B/S 三层体系架构实现,采用界面表示、业务逻辑、数据操作相分离的模式,客户不能直接与数据库交互,它首先与中间层联系,中间层实例化服务器应用程序,并管理服务器对象,将结果返回给客户。 J2EE 三层架构示意图如图 2 所示。 图 2 J2EE 三层架构示意图 整体架构 本系统基于云思想构建校园托管平台,主要分为中间层和显示层 ,系统整体架构图如图 3所示。 中间层:这层是承上启下的,它在下面的基础设施层所提供资源的基础上提供了多种服务,主要包括:应用服务器服务 、关系型数据库服务、并行处理服务、文件存储服务和代码版本控制服务。 而且这些服务用于支撑显示层。 显示层:主要是用于以友好的方式展现用户所需的内容,并会利用中间层提供的各种服务,是用户使用 Paas 平台的接口。 图 3 整体架构图 8 基于 hadoop 校园应用托管平台包括八大模块,分别为首页、新手指南、应用商店、组建团队、校园威客、文档中心、联系我们、个人中心。 平台特别注重用户体验,统一样式,颜色搭配以浅色为主,简单朴素,给人一种很清新的感觉。 系统功能模块如图 4 所示。 图 4 功能模块图 3 关键技术及成熟度分析 HDFS 技术 Hadoop Distributed File System,简称 HDFS,是一个分布式文件系统。 HDFS 有着高容错性的特点,并且设计用来部署在低廉的硬件上。 而且它提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序。 HDFS 放宽了 POSIX 的要求这样可以实现流的形式访问文件系统中的数据。 本平台的数据主要分两种:一种是关系型数据,可以存储在关系型数据库中,另外一种是文件数据,并且每一个应用的文件类型和文件大小以及未来文件增长方式我们都不得而知,采用 分布式文件存储再合适不过了,把文件备份,文件负载,大数据的存储等问题都有 HDFS来替我们解决,本平台为用户提供一个分布式文件的接口,通过 Java 可以直接调用 HDFS 的API,这样所有应用的文件数据存储都有 HDFS 来完成。 9 MapReduce 技术 MapReduce 是一种编程模型,用于大规模数据集的并行运算。 概念 Map(映射) 和 Reduce(化简) ,他极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个 Map(映射)函数,用来把一组键值对 映射成一组新的键值对,指定并发的 Reduce(化简)函数,用来保证所有映射的键值对中的每一个共享相同的键组 MapReduce 通过把对数据集的大规模操作分发给网络上的每个节点实现可靠性;每个节点会周期性的把完成的工作和状态的更新报告回来。 如果一个节点保持沉默超过一个预设的时间间隔,主节点记录下这个节点状态为死亡,并把分配给这个节点的数据发到别的节点。 每个操作使用命名文件的原子操作以确保不会发生并行线程间的冲突;当文件被改名的时候,系统可能会把他们复制到任务名以外的另一个名字上去。 (避免副作用)。 化简操作工 作方式很类似,但是由于化简操作的并行能力较差,主节点会尽量把化简操作调度在一个节点上,或者离需要操作的数据尽可能近的节点上了 [5]。 在本平台中, MapReduce 用在 web 访问日志分析 和 文档聚类。 图 5 MapReduce 工作机制 Applier 技术 MySQL Applier for Hadoop 是一个用来将 Hadoop 和 MySQL 中的数据相互转移的工具,可以将一个 MySQL 中的数据导进到 Hadoop 的 HDFS 中,也可以将 HDFS 的数据导进到非关系 10 型数据库中。 在 Hadoop Applier 之 前,还没有任何工具可以执行实时传输。 之前的解决方案是通过Apache Sqoop 导出数据到 HDFS,尽管可以批量传输,但是需要经常将结果重复导入以保持数据更新。 在进行大量数据传输时,其他查询会变得很慢。 且在数据库较大的情况下,如果只进行了一点更改, Sqoop 可能也需要较长时间来加载。 而 Hadoop Applier 则会读取二进制日志,只应用 MySQL 服务器上发生的事件,并插入数据,不需要批量传输,操作更快,因此并不影响其他查询的执行速度。 Tomcat 技术 目前平台使用的应用服务器是 Tomcat, Tomcat 服务器是一个免费的开放源码的 Web 应用服务器,是一个轻量级应用的服务器,运行时占用系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统的常用功能。 由于有了 Sun 的参与和支持,最新的 Servlet 和 JSP 规范总是能在 Tomcat 中得到体现, Tomcat 5 支持最新的 Servlet 和 JSP 规范。 因为 Tomcat 技术先进、性能稳定,而且免费,因而深受 Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前主流的 Web 应用服务器。 MySQL 技术 MySQL 是一个开放源码的关联式数据库管理系统,目前 MySQL 被广泛地应用在 Inter上的各种类型网站中。 由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库。 因为 MySQL 的简单易学,很多同学在开发项目的时候使用的关系型数据库是 MySQL,本平台会给每一个用户分配一个 MySQL 的 URL、账号和密码,供用户使用 MySQL 服务,每一个用户对应只有一个数据库,并且拥有的账号和密码只能访问用户自身的数据库,没有权限访问其他数据 库信息,很大的保障了信息的安全性。 AJAX 技术 AJAX 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术。 通过 AJAX,您的 JavaScript 可使用 JavaScript 的 XMLHttpRequest 对象来直接与服务器进行通信。 通过这个对象,您的 JavaScript 可在不重载页面的情况与 Web 服务器交换数据。 AJAX 在浏览器与 Web 服务器之间使用异步数据传输( HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。 AJAX 可 使因特网应用程序更小、更快,更友好。 AJAX 是一种独立于 Web 服务器软件的浏览器技术。 11 4 实施效果 在如图 6 所示的 hadoop 作业 界面 中,可查看到 MapReduce 在处理 20G 数据时候的任务执行情况, 图 6 任务 运行信息 12 在如图 7 所示 单机版和具有一个主节点和四个数据结点的集群进行计算 耗时 比较 ,他们采用同一批数据,产生同样的结果,使用最优的算法,处理时间单位为秒,可见数据越大集群的优势越来越明显。 而且集群有强大的扩展能力。 05001000150020xx25003000350040004500300M 1200M 2400M 4800M 9600M 19200M单机集群 图 7 集群与单机计算 耗时比较 在如图 8 所示的 HDFS 界面。基于hadoop的校园应用托管平台研究报告(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。