基于Hadoop的分布式社区教育学习云平台的设计

2017-05-30 10:48宋伟奇伍轶明
广西广播电视大学学报 2017年6期
关键词:学习平台云计算分布式

宋伟奇 伍轶明

[摘 要]文章阐述了基于社区教育的学习云平台系统的设计,是实践开展社区教育的有效尝试。首先通过分析社区教育对学习云平台的应用需求,结合云计算 Hadoop 平台技术,采用 B/S 架构,融合 HDFS 和 MySQL 数据库,设计出分布式的基于云计算的学习、教育平台。

[关键词]Hadoop ;云计算;分布式;学习平台

[中图分类号]G434 [文献标识码]A [文章编号]1008-7656(2017)06-0041-04

一、Hadoop及相关技术介绍

(一)云计算及其特点

云计算是基于 Internet 技术通过服务的方式提供虚拟化资源的计算模式,能够整合网络中多种类型的资源共同提供数据存储和访问功能。云计算主要分为软件即服务(SaaS),平台即服务(PaaS),基础架构即服务(IaaS)三种服务模式。

云计算的主要特点为:设备利用率高,云计算整合计算资源对用户开放,提高了主机的运行和使用效率;可靠性高,云计算用户的数据存储在云端,数据由集群的节点保存,数据冗余通过集群来处理,以此来保证数据读取的稳定性;运行成本低,扩展性强[1]。

(二)Hadoop简介

Hadoop 是由 Apache 开发的一个开源的分布式云计算平台, Hadoop 的核心是分布式文件系统 HDFS、分布式平行计算框架MapReduce 和分布式数据 HBase, Hadoop平台为用户提供大量透明的服务,使得用户可以轻松利用 Hadoop 整个计算资源来搭建起自己的云计算平台。 Hadoop 具有的优势为:高性能, Hadoop 的处理对象可以使数量级在 PB 以上的非结构化数据,得到的结构能够以通用的形式提供给用户;可拓展性, Hadoop 的会随着集群规模的增加,计算能力也会不断增强, Hadoop 可以拓展到上万台服务器节点来完成数据的存储和计算,有利于系统的后续完善。

二、基于Hadoop的分布式学习云平台需求分析 Hadoop 平台的设计基于兼容共享原则和开放原则,设计的主要内容包括系统的整体结构设计和依据系统的结构设计。通过对文献调研,师生访问,确定云教学和自主学习平台需求分析。

通过云计算技术对柳州市社区数字化学习资源进行开发和应用推广,实现社区分布式的网络化学习,使用者能够无缝访问云服务学习资源的各种应用,并保证系统安全、稳定运行。需求分析如下。

(1)依托柳州市城市职业学院,实现柳州市社区数字化学习资源云平台的建设,建立面向社区终身学习的“私有云”服务中心,整合电大、职校、培训机构的学习资源实现提供服务的后台数据云。

(2)开发SOA架构模式的学习资源管理信息系统,实现系统管理、知识管理、动态学习跟踪处理等功能。

(3)面向柳州市城市职业学院地理布局上分散的特点,设计分布式的平台技术架构,满足学生的分布式学习需求,借助平台学生能够异地查看和使用学习资源,实现学生和教师的互動,从平台上获取学习资源。满足教师使用需求,教师能够通过学习平台查看和修改教师的信息,实现师生交流互动,借助平台发布信息和学习资料,获取和分发学习资源。

(4)实现整个系统的硬件安全、数据安全、网络安全、系统安全。

(5)课题研究与将与中国移动、电信等运营商合作,邀请他们参与建设社区数字化教育云服务资源中心的建设,由他们投入网络的线路的租用、移动通信设备建设的费用,计划二年内投入试运行。

三、基于Hadoop的分布式学习云平台的设计

云平台的设计按照系统的职责划分主要可以分为文件系统,数据访问系统和 Web 控制系统三部分。

基于基于Hadoop的分布式学习云平台体系架构模型,系统体系架构模型分为三级: 第一级是服务请求及操作(serviceclent); 第二级是基础架构和服务应用容器(Web service)提供; 第三级是数据创建、数据访问及存储。其中核心部分是第二级。通常云计算划分为IaaS、PaaS及SaaS三层。其中底层(IaaS)的物理资源主要包括服务提供者所提供的网络资源、服务器资源、数据库资源及软件资源等。而虚拟资源池则是通过不同的技术将相同类型的资源构成同构或接近同构的虚拟资源池。例如, 使用虚拟化软件VMWARE分别在两台基于Power架构的高端服务器上虚拟出20台虚拟机, 动态分配相应的虚拟CPU、内存、硬盘、I /O 设备及网络资源,分别在这些虚拟机上部署一套虚拟的硬件环境、不同的操作系统、数据库及其他相应的应用程序, 进而在这两台服务器上虚拟出来的40台服务器组建成一个虚拟资源池,从而在这个小型的数据中心中设计实施虚拟化和构建云计算环境[2]。

基于Hadoop的分布式学习云平台属于中间层,也就是PaaS层,则主要负责对云计算的学习资源进行管理, 并对众多的访问管理进行负载均衡优化、调度, 从而为上一层(SaaS)的应用提供可靠安全的服务。通过分布式的基于多租户技术的管理服务主要是通过将相应的业务封装成标准的Web Service服务, 使得任何一个用户能够按照自己的需求对服务进行定制,多层结构的软件架构设计使得系统具有很大灵活性,不同的种类的SaaS接入以及对SaaS 软件进行个性化配置不影响其他用户的使用, 其基本特征有两点: 一是能够服务于大量的用户并针对每个用户的使用需求,具备很强的可伸缩性;二是能够按照要求提供附加的业务逻辑,使得用户能够对SaaS应用本身进行扩展, 从而满足用户对硬件资源、软件资源的更大需求。

(一)功能模块及其说明

项目由7个模块构成(见表1),其中:

(1)AppworksCommon模块提供了一些基础的公共设施,如日志记录器、配置文件、加密工具、JSON工具等,以及在云存储业务中所需的一些基础实体类。

(2)AppworksFramework模块是基于Java语言的Web+ORM开发框架(Object Relational Mapping框架采用元数据来描述对象一关系映射细节,元数据一般采用XML格式,并且存放在专门的对象一映射文件中),其核心设计目标是提高开发效率、学习简单、功能强大、轻量级,城职院相关课程建设中的课程Web项目均可使用该框架进行开发。

(3)AppworksCloudExpress模块是对云存储业务的底层实现,如HADOOP HDFS的存储封装、基于用户组的存储业务管理、访问权限控制、身份认证机制等。

(4)AppworksWebSevice模块提供了基于Axis2开源技术的Web服务,对外发布AppworksCloudExpress所提供的业务服务。

(5)AppworksServiceClient模块是二次开发过程中与Web服务对接的类库,屏蔽了复杂的通信过程,向上层提供面向业务的基础实体类及对象集合。

(6)AppworksInfrastructure模块提供数据库访问插件、数据库连接池插件、数据缓存插件,以及各类基础工具,并构建了基础的运行时环境;是默认后台加载的系统运行基础设施。

(7)VOD模块是基于Red5框架的流媒体服务端程序集,可以扩展至red5多负载集群。

(二)系统组件部署设计

基于项目中角色任务的不同,应用所需搭配与部署的模块存在差异性。其中,Web Service服务器的职责是提供存取HADOOP文件系统及维护权限数据的Web服务,因此在该服务器上部署了AppworksCloudService模块,其他部署的模块是因为递归依赖导致的,其依赖路径为:

AppworksCloudService

==> AppworksCloudExpress

==> AppworksCloudCommon + AppworksFramework

==> AppworksInfrastructure

流媒体服务器的职责是提供流式媒体播放,其主体业务由Red5开源组件和VOD模块共同完成,为提供流畅的服务并简化集成,在HADOOP集群中构建了FUSE挂载机制,将HDFS文件系统挂载到流媒体服务器上,使复杂的存取细节完全透明化[3]。

课程服务器是用户二次开发应用的部署点,可以完成的任务非常多,但与本项目的关联点主要是两个:Web服务与流媒体播放,在课程服务器上需要提供Web服务访问和结果解析能力,以及对流媒体的解析/中继能力。因此,AppworksCloudClient是部署在课程服务器上的主体模块。仅从Web Service角度而言,Web Service Server与课程服务器相当于主从关系,两者在通信与业务处理过程中存在若干同样需要的数据结构,这些数据结构以及伴随的工具被封装在AppworksCloudCommon中,因此,在课程服务器上也需要部署AppworksCloudCommon模块。AppworksCloudClient依赖于AppworksInfrastructure,所以在课程服务器上也部署了AppworksInfrastructure模块。此外,AppworksFramework可以提供简介的MVC Web应用构建能力,用户可以通过部署该模块来获得/应用这种能力。当然,用户亦可以选用Struts、Spring MVC等其它第三方MVC框架,此时AppworksFramework模块可以不引入。

在课程服务器所面向的最终用户——学员仅需要准备安装了浏览器的桌面计算机,当前项目不对学员所使用的设备有其它多余的限制。

(三)网络拓扑结构设计

为保障服务质量,尤其是流媒体服务器的服务质量,Red5流媒体服务器应尽量靠近于HADOOP集群。课程服务器可以存在于Web Service服务器与流媒体服务器所在的局域(LAN)网络,亦可以是存放于异地网络并通过Internet与Web Service服务器、流媒体服务器网络通信。

四、結束语

本社区教育学习云平台给出一种面向城市社区提供继续教育资源的云收集核心机制,作为面向“学习云”的PaaS平台的核心部件(AppworksFramework),平台的缓存应用调度机制主要基于hadoop分布式存储平台设计了针对性的文件缓存机制(采用最近最久未使用算法作为缓存替换策略);项目基于Hadoop分布式存储平台提供的基于Java的API原生库实现了对这些API的封装,屏蔽访问的复杂细节以及涉及到敏感信息的配置参数,并加入了安全机制,为大规模的上层应用开发(SaaS)屏蔽了底层复杂性[6][7];提供了调用Hadoop分布式存储平台的webservice封装接口,使得应用者能够跨平台的调用本地的云存储服务,同时,也能够为后期大量的数据进行MapReduce计算提供了基础设施保障[8]。

[参考文献]

[1]王妤姝.基于Hadoop的云教学与自主学习平台设计[J].软件开发,2016(11).

[2]郭松.基于Hadoop的海量学习资源云存储模型设计研究[J].计算机应用与软件,2016(5).

[3]夏晓峰.基于Hadoop的MOOC学习分析系统的构建[J].计算机时代,2016(1).

[4]朱建生,汪健雄,张军锋.基于NoSQL数据库的大数据查询技术的研究与应用[J].中国铁道科学,2014(4).

[5]林清滢.基于Hadoop的云计算模型[J].现代计算机,2010(7).

[6]张文峰.MapReduce模型的分布式计算平台的原理与设计[J].华中科技大学,2012(5).

[作者简介]宋伟奇,柳州城市职业学院副教授,硕士,研究方向:计算机网络应用、网络工程;伍轶明,广西科技大学副教授,硕士,研究方向:计算机应用、计算机教育研究。

[责任编辑 李 兵]

猜你喜欢
学习平台云计算分布式
分布式光伏热钱汹涌
分布式光伏:爆发还是徘徊
泛在学习环境下微课学习平台的设计策略研究
基于微信及微网站的高职院校移动学习平台设计与实现
基于云计算的移动学习平台的设计
实验云:理论教学与实验教学深度融合的助推器
云计算中的存储虚拟化技术应用
泛在背景下图像处理课程学习平台设计研究
基于校本微课的移动学习平台的设计与研究
基于DDS的分布式三维协同仿真研究