基于Hadoop的分布式社区教育学习云平台的设计
[摘 要]文章阐述了基于社区教育的学习云平台系统的设计,是实践开展社区教育的有效尝试。首先通过分析社区教育对学习云平台的应用需求,结合云计算 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工具等,以及在云存储业务中所需的一些基础实体类。