王月春
(石家 庄邮电职业技术学院 河北 050021)
远程教育经过近10年的发展,积累了大量的课件资源,这些课件资源主要是流媒体文件及相关的讲义资料等。据统计,按照在互联网上点播效果比较好的要求,视频码流在400Kbps左右,依据这样的数据计算,一门30分钟的课程需要占用存储空间约100M,若按照每年增加10000门课程计算,每年需要存储空间1T,其对硬盘空间的占用是相当惊人的。传统的远程教育课件资源管理方式主要是通过NAS、SAN等方式实现,这些实现方式普遍存在设备投入大、环境部署复杂、大并发下性能问题以及单点故障等问题。
而开源的Hadoop云计算体系架构,其分布式文件系统HDFS具有大数据存储的先天优势,适合存储大数据文件,满足一次存储,多次读取的模式,这正是远程教育课件资源管理所需要的。
Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。以Hadoop分布式文件系统(Hadoop Distirbuted File System,HDFS)和MapReduce(Google MapReduce的开源实现)为核心,为用户提供了系统底层细节透明的分布式基础架构。
HDFS采用了主从(Master/Slave)结构模型,一个HDFS集群是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件的访问操作;集群中的DataNode管理存储的数据。HDFS允许用户以文件的形式存储数据。Name Node执行文件系统的命名空间操作,比如打开、关闭、重命名文件或目录等,它也负责数据块到具体DataNode的映射。DataNode负责处理文件系统客户端的文件读写请求,并在NameNode的统一调度下进行数据块的创建、删除和复制工作。HDFS体系结构如图1所示。
NameNode和DataNode都可以在普通商用计算机上运行,服务器运行不是必须的,这大大降低了运行成本。
HDFS 文件系统假设系统故障(服务器、网络、存储故障等)是常态,而不是异常,因此,通过多方面的措施来保证数据可靠性。
图1 HDFS体系结构
(1)多个副本
数据在写入时被复制多份,并且可以通过用户自定义的复制策略分布到物理位置不同的服务器上;数据在读写时将自动进行数据的校验,一旦发现数据校验错误将重新进行复制;HDFS采取了副本策略,HDFS的副本放置策略是三个副本,一个放在本节点上,一个放在同一机架中的另一个节点上,还有一个副本放在另一个不同的机架中的一个节点上。
(2)心跳机制
每个DataNode周期性发送心跳信息给NameNode。网络中断可能会导致一批Data Node连不上Name Node。NameNode检测到一段时间没有上报心跳后,把这个DataNode标识为dead,不再分配新的io请求给它。在这个DataNode上的所有数据都不能访问了,这就会导致一些block的备份数量会少于指定的值。NameNode会经常检查block备份数量,发起重新备份。
基于HDFS的远程教育课件资源管理的核心在于用HDFS集群文件系统代替了传统的NAS或SAN存储系统。体系结构如图2所示。
利用HDFS文件系统存储远程教育课件资源,从HDFS存储大数据的原理上来讲是非常合适的,也是容易实现的,但是如何使媒体服务器能够访问HDFS上的文件并发布到网络上,是需要解决的问题。本文通过FUSE-dfs[3]解决了HDFS文件系统访问的问题。
图2 基于HDFS的远程教育课件资源管理
(1)fuse介绍
用户空间文件系统(Filesystem in Userspace,简称FUSE)是操作系统中的概念,指完全在用户态实现的文件系统。传统上操作系统在内核层面对文件系统提供支持,难以调试,生产率低。通过在用户空间实现文件系统能够大幅提高生产率,简化了为操作系统提供新的文件系统的工作量,特别适用于各种虚拟文件系统和网络文件系统。但是,在用户态实现文件系统会引入额外的内核态/用户态切换带来的开销,对性能会产生一定影响。
FUSE-dfs就是通过FUSE访问HDFS的实现方式。通过FUSE-dfs,用户就可以像访问本地文件系统一样来访问HDFS文件系统了。
(2)安装并编译FUSE-dfs
在媒体服务器上安装FUSE-dfs,并编译。普通用户如下操作。
(3)挂载HDFS文件系统
编译完成后,在媒体服务器上挂载Hadoop集群文件系统HDFS。
HDFS文件系统挂载成功后,就可以像访问本地文件系统一样访问HDFS了。若需要系统启动时自动挂载,可以通过修改/etc/fstab文件,在系统启动时挂载HDFS文件系统。
(4)上传媒体文件
HDFS文件系统成功挂载后,将媒体文件上传到HDFS上,上传成功后,可以看到,媒体文件被切割并分布到三个节点上。
(5)发布多媒体文件目录
参照不同流媒体服务器的发布步骤,将/mnt/dfs发布到流媒体服务器上,完成对HDFS文件系统上对媒体文件的发布工作。至此,基于Hadoop的课件资源管理调试完成。
图3 媒体服务器访问HDFS文件系统
(1)高可靠性
HDFS在副本保存、冗余备份以及DataNode节点异常检测方面,有设计了完善的机制,具备存储海量课件资源的优势。
(2)低成本
Hadoop集群的底层硬件完全运行在普通PC机上,不需要高端的存储设备及服务器,大大降低了数据存储成本。按照每个课件100M,共10000个课件计算,存储空间在1T左右,如果采用NAS或SAN实现课件资源管理,至少需要存储设备1套、课件管理服务器1台;而采用HDFS,只需要4台低档PC服务器甚至是PC机,每台配置2块1T存储空间的硬盘,组成RAID0+1,在HDFS冗余存储的基础上,实现了单台硬盘RAID,大大提高了数据安全性,成本至少降低50%。课件数量越大,成本降低越明显。
(3)扩展性强
当HDFS存储空间不足时,既可以通过对DataNode节点扩充磁盘的方式扩展容量,也可以通过增加DataNode节点的方式扩展容量。
(4)高效访问
Hadoop能够在DataNode之间动态地移动数据,以保证各节点动态平衡。单个较大的课件文件被分割成若干数据块,以冗余备份的方式保存在多个DataNode节点中,客户端访问时从多个DataNode节点并行读取,提高了并发访问吞吐量。
基于Hadoop的远程课件资源管理系统,从技术底层解决了大量课件资源存储的问题,降低了单位数据存储成本,但是在系统的可管理性、易用性、用户界面友好性等方面还需要深入研究。
[1] 陆嘉恒. Hadoop实战 北京 机械工业出版社,2012:3-15
[2] 文艾 王磊 Hadoop分布式文件系统深度实践. 北京 清华大学出版社 2012:4-6
[3] http://sourceforge.net/projects/fuse/
[4] 刘统阁,刘波,杨志文. Hadoop 在VOD 系统中的应用研究计算机与现代化 2012,6 195-198
[5] 刘琨,李爱菊,董龙江基于Hadoop 的云存储的研究及实现微计算机信息 2011,27(7) 220-221
[6] 陈玉云,柳先辉,赵晓东 基于Hadoop平台资源调度策略的研究 电脑知识与技术2012,8(19)4687-4690
[7] 刘鹏. 实战Hadoop——开启通向云计算的捷径.北京: 电子工业出版社,2011