基于Hadoop 数据总线的大学英语教学应用平台研究
2014-11-18刘红梅邓嘉明
刘红梅,邓嘉明
(嘉应学院,广东 梅州 514015)
一、引言
随着大学英语教学应用软件应用服务建设的不断深入,面向师生的应用服务层出不穷,学校现有应用系统和部分服务器均在几年前完成,软件和硬件已无法满足学校发展的需要,随着技术发展及校园应用规模的越来越大,传统校园应用软件基础架构设计也存在不少问题,难以持续性的进行扩展,给学校信息化进一步发展带来极大的困扰。本文主要通过建立一种基于Hadoop 数据总线的数字化大学英语教学应用平台,通过应用开放服务模式,高效地推广与使用校园应用服务,探索一种师生共同参与数字化校园建设的新模式[1]。通过搭建大学英语教学应用平台,建设统一的应用业务平台、统一的基础支撑体系,集中承载业务应用系统,同时面向用户服务;实现统一管理、统一运维、统一支撑、统一标准,建立健全一套信息化协调发展的运行机制,创新业务应用模式和管理机制,提升校园应用服务提高和运行维护的专业化水平。
二、大学英语教学应用APP 教学优势
1.大学英语教学手机应用软件普及。
2.粤教云平台的建设为大学英语教学提供良好平台。
三、区域教育云平台环境下大学英语教学应用建设思路
(一)基于SaaS 的应用开放平台布局
基于各高校已经建立数字化校园的基础应用,基本完成三大平台建设,包括统一数据中心、统一身份认证平台和统一门户。通过应用开放平台方式可以实现从数字化校园的传统应用模式向中小学英语教学应用平台服务模式转变,改变以往的由信息网络中心或者数字化校园建设小组统一开发,到各部门、院系、甚至学生用户、第三方开发者共同开发的第三方应用与大学英语教学应用平台的结构布局。SaaS 应用开放平台布局是将大学英语教学应用平台建设成一个软件集散平台、一个软件服务平台[2]。一个可以对开发者和作品进行认证的体系结构;一个可以让开发者上传作品,并展示这些作品的平台;一套向用户推荐各种用户可能喜欢的作品的机制;一个用户购买软件时所需的计费和支付体系;一个供用户查找所需功能应用的搜索引擎;一些供开发者参考相关运用数据的接口[3]。通过分析学校已有校园应用的界面设计特点,通过数据总线接口做到应用中心与已有应用系统的基本协调与统一,通过整合数字化校园资源,以SaaS 应用开放平台布局搭建中小学英语教学应用平台。
(二)基于数据总线的数据集成模式
传统的校园应用必须每个应用建立相应的数据库,而在数据应用开放中,通用数据可以由各个应用共同建立。基于数据总线的数据挖掘模式,在制定统一数据标准的基础上,构建数据集成平台,保证业务系统之间能够通过该平台实现数据共享与集成。数据集成平台是大学英语教学应用平台的重要组成部分,是整个系统的信息传输、信息交换总线。通过数据集成平台将各APP 数据库中需交换的数据自动上传到数据集成中心库中,并按各APP 的数据需求将数据集成中心库的数据分发,从而实现数据的统一集成和标准化,为提供数据的综合查询、统计分析奠定数据基础[4]。为满足海量数据的分布式计算和处理需求,采用基于无共享集群架构的并行化数据处理方式完成海量数据的组织、检索、传输等工作,提高业务效率[5]。同时,建立标准统一的开发平台向编程人员屏蔽底层分布式计算细节,提高业务实现效率。
(三)基于分布式计算的数据存储模式
为了使用数据总线集成模式更好的针对海量数据的智能分析和深度挖掘应用,大学英语教学应用平台将在建立分布式计算的数据仓库。数据仓库是建立在Hadoop 上的数据仓库基础构架,通过数据提取转化加载(ETL),实现一种可以存储、查询和分析存储在Hadoop 中的大规模数据的机制,并提供完整的SQL 查询功能,可以将SQL 语句转换为MapReduce 任务进行运行[6]。大学英语教学应用平台通过分布式处理技术可以将大量服务器计算存储节点整合成为一个统一的数据存储、处理集群,为海量音视频、图像、互联网等大数据的处理提供超大的计算能力和海量的存储空间,实现传统方法无法实现的数据存储和逻辑运算,在基于分布式计算的数据存储模式基础上开发和运行处理海量数据的应用程序,完成校园应用开放开发。
四、基于Hadoop 数据总线的大学英语教学应用平台架构
(一)大学英语教学应用平台整体架构
大学英语教学应用平台总体架构分为三层,包括APP 层、分布式数据总线层和硬件层。校园应用中心的核心是APP 层。APP 层是各种应用的功能服务体现和访问入口。APP 层通过建设开放式APP 应用平台,第三方开发者可以根据平台接口,自行开发平台上传至应用中心,并运行在整体架构上。数据总线层是基于Hadoop 的分布式数据协作平台,平台所有数据以总线形式集成,为平台上层应用提供数据分布式存储和分布式数据管理,完成数据挖掘等应用所需功能。硬件层包括服务器和存储,通过虚拟化操作系统与数据总线层相连。
图1 大学英语教学应用平台整体架构
(二)大学英语教学应用平台服务框架
大学英语教学应用平台整个服务框架由用户平台(各教职工、学生用户平台)、开发者平台(各部门、院系、甚至学生用户、第三方开发者平台)及应开放平台管理中心三个部分组成。
用户平台通过注册、订阅、购买形式使用平台中的APP,在统一的应用开放平台中,获取各种格式的APP,包括手机、平板和WEB 端,并实现不同的操作系统,包括IOS、android 等,通过订阅、购买来构建应用列表,实现应用的个性化定制与快速访问。
开发者平台是开发者建立新应用的平台。应用功能可以由部门、院系、甚至学生用户发起,可以是一些简单的WEB 集成应用,通过开放平台的组件即可完成;也可以由第三方开发者完成,可以由计算机学院组织学生按照组件方式进行开发。开放平台通过数据总线模式完成,每一个组件都可以建立成工具形式进行共享[7]。
开放平台管理中心是所有应用的管理中心,包括三方面功能。一是用户订阅、购买、下载管理,作为整个开放平台的运营机构,直接对用户负责。二是开发者软件管理,包括应用的注册、组件使用、版本维护等。三是数据管理,包括数据接口、数据计算、数据存储和数据的安全性维护。管理中心肩负着整个平台的运维职责,对各种用户负责。管理中心还需要提供数据挖掘任务,包括用户兴趣数据挖掘,对校园应用中哪些数据是学生感兴趣的,哪些数据是校领导关注的,进行数据挖掘,定期提供各种关键数据的组件,以推动软件更新,通过兴趣驱动使数字化校园的应用更加完善。
五、大学英语教学应用平台Hadoop 数据总线核心技术开发与探索
(一)HDFS 分布式文件系统
大学英语教学应用平台的文件存储系统采用分布式文件系统,通过建立一个高度容错性的系统。和以往的整体部署思路不同,分布式部署适合部署在相对性能要求较低的服务器上,通过提供高吞吐量的数据访问,来完成大规模数据集上的应用[8]。分布式文件系统特点主要包括:使用低成本存储和服务器构建,能够存放PB 以上级数据;高可扩展性,实际生产环境可扩展至4000 个节点;高可靠性和容错性,数据自动复制,可自我修复;高带宽,支持高并发I/O 访问。
大学英语教学应用平台的分布式文件系统HDFS 运行在使用通用服务器构建的大规模集群之上,采用键值对(key/value)模型进行数据存储。整个HDFS 系统采用元数据集中管理、数据块分布存储的架构,包括一个主服务器和多个块服务器,支持多个客户端访问。大规模数据被分割成固定大小的块(64 MB 或128 MB),块服务器将块以文件形式保存至硬盘,并根据块句柄和字节范围读写数据。为了实现容错以确保可靠性,每个块被缺省的复制3 个备份。主服务器采用B+树管理文件系统的名字空间、文件映射、块物理位置等元数据。此外,HDFS 的设计充分考虑了互联网应用负载和环境特征,通过服务端与客户端的联合设计,使性能和可用性达到最优,实现四个方面的功能,包括:考虑到节点的失效问题,以软件方式实现系统故障恢复;采用特殊的文件系统参数,文件大小以GB 计并支持大量小文件;适应应用特征,增加追加写文件操作以优化磁盘顺序读写速度;部分文件操作不再透明,由应用程序完成。
图2 HDFS 分布式文件系统
(二)基于MapReduce 计算框架的数据总线计算框架
为满足对海量数据的智能分析和深度挖掘需求,大学英语教学应用平台采用Hadoop MapReduce并行计算框架对各类结构化、非结构化数据进行离线分析[9]。Hadoop 是一个利用key/value 数据并行性进行分布运算而后汇总结果的计算框架,适合作用于具有可划分属性(时间、空间等)的数据集合的,利于线性扩展;采用数据本地化处理优化,通过移动计算,而非移动数据来实现高效数据处理;同时,Hadoop 通过与HDFS 配合使用和容错设计,具有高可靠性。
为了简化集群环境下的并行编程负担,大学英语教学应用平台使用Hadoop 技术,实现MapReduce编程模型,使得程序员只需关注应用处理逻辑,而由运行环境负责集群应用的任务调度、数据通信、可靠性和可伸缩性保障等底层处理细节。计算框架中,通过MapReduce 把数据处理过程分解为Map阶段和Reduce 阶段两个阶段,编写map 和reduce方法即实现对海量数据的并行处理。map 方法处理key/value 键值对数据生成一系列key/value 中间结果,reduce 方法合并具有相同键值的中间结果得到最终结果。MapReduce 的执行过程,首先对数据进行分块并分配给多个Map 任务执行map 方法,然后根据某种规则对中间结果进行划分(partition)并写入本地硬盘;Map 阶段完成后进入Reduce 阶段,具有相同key 值的中间结果被从多个Map 任务节点收集(shuffle)到Reduce 节点进行合并排序(sort),并执行reduce 方法,输出结果写入分布式文件系统。
图3 MapRednce 模型
大学英语教学应用平台MapReduce 模型为:
Map:k1,v1→'List(k2,v2)
Reduce:k2,List(v2)→'list(v2)
其中,Map 方法将key/value 数据[k1,v1]转换为[k2,v2],Reduce 方法针对每个k2 的值列表List(v2)做list 操作。此外,MapReduce 模型中还包括partition、combine 和sort 等方法,可根据需要进行定制。
将已有智能分析和挖掘应用MapReduce 化的一般过程为:分析问题并行性,即输入数据集是否可被切分处理;编写Map 函数,在第一阶段计算<Key,Value >对。Map 方法可以完成选择、投影等运算;编写Reduce 函数,在第二阶段用于汇总Map 函数的结果,Reduce 方法可以完成表中定义的其他key/value 代数运算。通过MapReduce 模型,完成大学英语教学应用平台的分布式计算任务。
(三)HBase 分布式数据库
HBase 是一个分布式的、按列存储的、多维表结构的实时数据库,为高速在线数据服务而设计。HBase 的特点主要包括:
采用NoSQL 数据库结构,面向列存储、可压缩,有效降低磁盘I/O,提高利用率;多维表结构,在四个维度中三个维度可变,适合描述复杂嵌套关系;灵活的表结构,可动态改变和增加(包括行、列和时间戳);支持单行的ACID 事务处理。
基于分布式架构,高性能,支持高速并发写入和高并发查询;可扩展,数据自动切分和分布,可动态扩容,无需停机;高可用性,建立在HDFS 分布式文件系统之上[10]。
图4 HBasewv 分布式数据库
为了支持互联网应用的格式化和半格式化数据,可构建了弱一致性要求的大规模数据库系统HBase。HBase 数据模型包括行、列以及时间戳,多个行组成一个子表(Tablet),保存在子表服务器中。为使性能最大程度地适应需求,HBase 体系结构也是基于客户端和服务器架构设计的(如图5)。HBase 依赖于集群任务调度器、HDFS 文件系统以及分布式锁服务ZooKeeper。HBase 使用具有鲁棒性的分布式锁ZooKeeper 来保存根元数据表的指针,客户端应用首先通过程序库从ZooKeeper 中获得根表的位置,然后与主服务器进行元数据通信,进而与子表服务器进行数据通信[11]。HBase 使用一台服务器作为主服务器管理元数据,并对子表服务器进行监控、故障处理和负载调度。
图5 HBase 体系结构
六、总结
大学英语教学应用平台并不仅仅是一个软件的平台架构,而是一种完善的数字化校园生态圈。这个生态圈包含了用于部署应用的那些相对标准的软件开放平台,也就是通常所说的电脑操作系统、手机操作系统等,任何一个应用开放平台环境都必然有其服务的特定软件平台,所有大学英语教学应用平台中的程序,都基本能够兼容于这些目标平台;大学英语教学应用平台系统,也就是那个应用分发和销售的服务体系;一套完善、安全、方便的用户认证、服务、应用体系;最终用户,也就是真正通过那些目标平台来使用应用开放的人,他们通常是使用手机之类的移动设备,到设备相对应的应用开放中查找自己所需要的软件、服务或特定的功能,并为这些功能支付相应的费用;提供应用开放平台或通过应用平台来为用户提供服务的个人或组织机构;为校园应用开放开发应用的一个人或很少的几个人组成团队就能够开发出非常绚丽的软件;广告商、运营商等附属参与者[12]。所有的这一切构成了大学英语教学应用平台的完整生态圈,对于推进大学英语教学改革,实现有效教学具有参考价值。
[1]张德时.高校数字化校园建设规划科学研究[J].黑龙江高教研究,2010,196 (8):39-41.
[2]陈明,李猛坤,张强.一种基于扩展MVVM 模式的SaaS面向服务计算模型[J].微电子学与计算机,2010,27(8):27-31.
[3]潘建新.WLAN 统一接入平台的研究与实现[J].实验室研究与探索,2013,32 (8):76-79.
[4]刘丹阳.高校数据中心数据集成方案设计的方法研究[J].实验技术与管理,2011,28(4):256-258.
[5]姜春茂,吴翔虎,段莹.一个基于消息传递接口和面向对象的图像信号处理并行向量库[J].计算机应用研究,2012,29 (12):4560-4563.
[6]谢桂兰,罗省贤.基于Hadoop MapReduce 模型的应用研究[J].微型机与应用,2010,8 (8):4-7.
[7]范晓鑫,严隽薇,刘敏.基于门户的Web 集成体系及其适应性技术的研究[J].计算机应用研究,2007,24(7):208-210.
[8]张春,张金霞.分布式多协议中间件的架构与实现[J].计算机工程与设计,2011,32(10):3419-3423.
[9]李成华,张新访,金海.MapReduce:新型的分布式并行计算编程模型[J].计算机工程与科学,2011,33(3):129-135.
[10]师明,刘轶,唐歌实.一种面向分布式文件系统的文件预取模型的设计与实现[J].计算机科学,2014,41(7):30-35.
[11]汪济洲,刘伟.一种新的具有鲁棒性动态二进制时隙防碰撞算法[J].计算机工程与科学,2011,33(10):169-173.
[12]龙亚平.基于SoLoMo 的移动商务信息生态系统的构建研究[J].电子商务,2013,9(9):55-56.