王月春
(石家 莊郵電職業技術學院 河北 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