王珈珞 曹前
摘? 要:新媒體時代的快速崛起,使微課成為高職院校授課教學過程中的新型教學輔助模式。該文主要分析了Hadoop技術(shù)在高職微課體系的應(yīng)用和深化,重點對數(shù)據(jù)平臺框架中Hadoop分布式文件系統(tǒng)和Red5流媒體相關(guān)技術(shù)進行了研究和分析。通過微課系統(tǒng)的設(shè)計,實現(xiàn)了HDFS Client模塊和RTMP Client模塊的視頻調(diào)用,并完成微課視頻的海量存儲和流媒體式播放方式。最后,結(jié)合大數(shù)據(jù)微課實例對系統(tǒng)的開發(fā)進行了分析和研究。
關(guān)鍵詞:Hadoop;微課;Hadoop分布式文件系統(tǒng)
中圖分類號:TP311? ? ? ?文獻標識碼:A 文章編號:2096-4706(2020)18-0140-04
Abstract:With the rapid rise of the new media era,micro-course have become a new teaching aid model in the teaching process of higher vocational colleges. This article mainly analyzes the application and deepening of Hadoop technology in the micro-course system of higher vocational schools,and focuses on the research and analysis of the Hadoop distributed file system(HDFS)and Red5 streaming media related technologies in the data platform framework. Through the design of the micro-course system,the HDFS Client module and the RTMP Client modules video call are realized,and the mass storage and streaming media mode of micro-course videos are completed. Finally,it analyzes and researches the development of the system based on the big data micro-course example.
Keywords:Hadoop;micro-course;HDFS
0? 引? 言
高職院校的教學形式越來越多,微課就是其中之一,以播放時間短、效率高并能動態(tài)展示教學重難點為優(yōu)勢的新型授課方式,它可以是視頻、動畫等基于網(wǎng)絡(luò)流媒體的播放形式。當今教學環(huán)境下,微課的教學方向和授課、備課方式在一定程度上也反映了老師的授課能力和信息化教學的教學能力。同時,對于促進疫情常態(tài)化下高職學生的自主學習具有重要的輔助作用,促進學生學習成果優(yōu)質(zhì)體現(xiàn)。
本文介紹了在Hadoop框架下,把Hadoop分布式文件系統(tǒng)(HDFS)實現(xiàn)為具體的微課存儲系統(tǒng),采用Red5作為流媒體的服務(wù)器搭建平臺,構(gòu)建成校園微課體系。同時把云計算的運行模式整合為新數(shù)據(jù),并完成了對數(shù)據(jù)的編輯和處理,大大提升了微課系統(tǒng)中數(shù)據(jù)的有效存儲空間以及數(shù)據(jù)處理的擴展性。
1? 相關(guān)技術(shù)支持
1.1? Hadoop框架
Hadoop框架是大數(shù)據(jù)分布式的文件系統(tǒng),它可以將文件進行統(tǒng)一的復(fù)制和存儲,提高數(shù)據(jù)的準確性和再編輯能力。Hadoop框架是函數(shù)型編程模塊,對MapReduce的模型形成數(shù)據(jù)挖掘,大大提高了數(shù)據(jù)處理的能力。框架的構(gòu)成分為查詢數(shù)據(jù)的MapReduce框架和數(shù)據(jù)生成器預(yù)處理器。首先,數(shù)據(jù)的搭建用RDF/XML初始化格式運算,再將組件N Triple Converter分析后的數(shù)據(jù)轉(zhuǎn)變成N-Triples組件。最后用文件分割器將大數(shù)據(jù)庫中的分層數(shù)據(jù)加以切割和分類,最終放入HDFS中。
1.2? 云存儲的結(jié)構(gòu)模型和配置
在以往的存儲結(jié)構(gòu)中,無論是慕課還是微課,伴隨著課程的進行系統(tǒng)存儲設(shè)備產(chǎn)生的數(shù)據(jù)量不斷增加,如果只是單一的加設(shè)存儲硬件的數(shù)量,而對于在存儲設(shè)備增加過程中出現(xiàn)的單點故障沒有相應(yīng)的解決方法,那么故障點中的海量數(shù)據(jù)很有可能會永久丟失或不可恢復(fù)。為了解決負載平衡和糾錯的問題,云存儲技術(shù)應(yīng)運而生。
傳統(tǒng)存儲是為了實現(xiàn)單一存儲或環(huán)境設(shè)計的,而對數(shù)據(jù)的擴展性卻沒有更多的開發(fā)。漸漸地,存儲技術(shù)由最初的直連存儲(Direct Atached Storage,DAS)向網(wǎng)絡(luò)附加存儲(Netwui Attached Storage,NAS)發(fā)展,之后發(fā)展為存儲區(qū)域網(wǎng)絡(luò)(Storage Area Network,SAN),再發(fā)展為分布式存儲(Ditributed Storage),而今發(fā)展到云存儲。
云存儲的框架結(jié)構(gòu)與傳統(tǒng)存儲的完全不同,它不是單一的普通存儲硬件,而是利用完整的云存儲框架的一種數(shù)據(jù)編輯訪問服務(wù)。云存儲系統(tǒng)的框架模型分為4層,分別是存儲層、基礎(chǔ)層、接口層和用戶訪問層,如圖1所示。
1.3? HDFS
HDFS是指被設(shè)計成適合運行在通用硬件(commodity hardware)上的分布式文件系統(tǒng)(Distributed File System),它和傳統(tǒng)的分布式文件系統(tǒng)有著很多相同的特點,但它和其他的分布式文件系統(tǒng)的差別也是非常明顯的。HDFS是一個容錯性很高的文件系統(tǒng),適合使用在性價比高的機器上,對海量數(shù)據(jù)的訪問也能很好的駕馭,非常適合應(yīng)用在大規(guī)模存儲數(shù)據(jù)集合上。同時,HDFS放寬了一些POSIX約束,來完成流動式訪問海量系統(tǒng)數(shù)據(jù)的目標,數(shù)據(jù)訪問如圖2所示。
1.4? 數(shù)據(jù)倉庫Hive和實時分布式高維數(shù)據(jù)庫HBase
數(shù)據(jù)倉庫Hive和高維數(shù)據(jù)庫HBase調(diào)用數(shù)據(jù)的方法如下:
(1)訪問數(shù)據(jù)工具Hive,給數(shù)據(jù)類提供SQL訪問功能;
(2)再把數(shù)據(jù)SQL語句翻譯成MapReduce模塊調(diào)取信息;
(3)當延時響應(yīng)觸發(fā)時HBase可以調(diào)取分布式存儲系統(tǒng),并加以置換和編輯;
(4)最后將加工后的數(shù)據(jù)用MapReduce模塊進行保存。
1.5? 微視頻Red5服務(wù)器
Red5是常用的Java開發(fā)的流媒體服務(wù)器,它支持:把音頻(MP3)與視頻(FLV)自由轉(zhuǎn)換成播放數(shù)據(jù)流、錄制客戶端播放流、共享視頻對象、現(xiàn)場直播流發(fā)送和遠程調(diào)用數(shù)據(jù)。Red5使用RTMP、RTMPT、RTMPS和RTMPE作為流媒體的主要傳輸協(xié)議,實現(xiàn)了在線錄制,F(xiàn)lash流媒體播放,在線微聊,視頻直播等一些基本功能。
2? 系統(tǒng)架構(gòu)設(shè)計
2.1? 系統(tǒng)框架
微課的系統(tǒng)結(jié)構(gòu)采用混合存儲數(shù)據(jù)方式搭建平臺,它提供了一種海量數(shù)據(jù)存取服務(wù),基于Hadoop環(huán)境來實現(xiàn)數(shù)據(jù)訪問和普通文件的配套存儲。其主要組成部分是分布式文件系統(tǒng)HDFS,以及Map Reduce分布式計算框架結(jié)構(gòu)。在該集群中首先定義一個主節(jié)點充當Name Node,用于元數(shù)據(jù)的編輯和管理,再將其它若干子節(jié)點定義為Datanode,負責存儲實際的數(shù)據(jù)塊。為了實現(xiàn)該服務(wù)操作,系統(tǒng)框架采用四層結(jié)構(gòu),分別是:混合存儲層、數(shù)據(jù)管理層、數(shù)據(jù)接口層和應(yīng)用層。
(1)混合存儲層:這層是由系統(tǒng)硬盤和模擬硬盤組合的,并在分布式構(gòu)架中給數(shù)據(jù)節(jié)點提供服務(wù)空間;數(shù)據(jù)混合存儲利用IDC大數(shù)據(jù)和資源庫數(shù)據(jù)為基本,通過存算分離,實現(xiàn)數(shù)據(jù)彈性伸縮;達到數(shù)據(jù)的完整性和準確性;
(2)數(shù)據(jù)管理層:這層用于數(shù)據(jù)空間的分割,為數(shù)據(jù)的編輯提供平臺,在Hadoop環(huán)境下的NameNode來負責分配分布式文件的字段空間、后臺數(shù)據(jù)倉庫的數(shù)據(jù)維護和數(shù)據(jù)配比的可能性;同時,數(shù)據(jù)管理層也是介于數(shù)據(jù)和應(yīng)用之間的介質(zhì)和橋梁,通常上層自動應(yīng)用所需的數(shù)據(jù)會直接由該層調(diào)用。對多數(shù)用戶而言,數(shù)據(jù)管理層的功能定位是用戶和數(shù)據(jù)管理;
(3)數(shù)據(jù)轉(zhuǎn)換層:該層的數(shù)據(jù)由HDFS壓縮轉(zhuǎn)變成RTMP指定數(shù)據(jù)格式;數(shù)據(jù)轉(zhuǎn)換層的設(shè)計相對簡單,主要工作是實現(xiàn)框架與數(shù)據(jù)對象之間的序列化與反序列化。并為應(yīng)用層提供輔助服務(wù),在調(diào)用Web服務(wù)代理方法之前,將數(shù)據(jù)倉庫中的對象參數(shù)序列化成字符串,在調(diào)用之后,將數(shù)據(jù)轉(zhuǎn)換成反序列化數(shù)據(jù)對象加以應(yīng)用;
(4)應(yīng)用層:應(yīng)用層包括應(yīng)用支持子層、應(yīng)用框架AF、存儲設(shè)備對象以及設(shè)備應(yīng)用對象,負責平臺數(shù)據(jù)流的匯聚、設(shè)備發(fā)現(xiàn)、服務(wù)發(fā)現(xiàn)、安全與鑒權(quán)等。每個應(yīng)用層協(xié)議都是為了解決某一類應(yīng)用問題,而問題的解決又往往是通過位于不同主機中的多個應(yīng)用進程之間的通信和協(xié)同工作來完成的,最后,將最終數(shù)據(jù)由鏈路結(jié)構(gòu)應(yīng)用到系統(tǒng)平臺中。
2.2? HDFS-RTMP
HDFS-RTMP是系統(tǒng)結(jié)構(gòu)中重點操作和開發(fā)的模塊部件,主要分為HDFS Client模塊以及RTMP Client模塊。該部件都屬于鏈路的逆向結(jié)構(gòu)趨向,分為輸入和輸出兩個步驟,當HDFS Client從Hadoop數(shù)據(jù)集中調(diào)用實時視頻流數(shù)據(jù)時,系統(tǒng)觸發(fā)HDFS-RTMP部件進行編輯,處理后再輸出給RTMP Client。
2.2.1? HDFS Client的調(diào)配和實現(xiàn)
在系統(tǒng)需要讀取數(shù)據(jù)文件時,HDFS Client模塊利用分布式提取的方式將用HDFS的API接口來保存和調(diào)用Hadoop數(shù)據(jù)。其中,HDFS Client模塊里的FileSystem數(shù)據(jù)流會自動翻譯成一個Path文件流,并且對象值會返回一個FSDataInputStream數(shù)據(jù)信息和模塊流,最終HDFS Client模塊中的FSDataInputStream數(shù)據(jù)信息就可以讀取出分布式文件的具體內(nèi)容了。
HDFS Client模塊的實現(xiàn)是調(diào)用文件數(shù)據(jù)流信息完成的,首先將HDFS Client模塊設(shè)置FileSystem的get()方法獲取分布式文件DistributedFileSystem,然后fs通過調(diào)用open()的打
開設(shè)置并讀取的文件包里面的有用信息。接著Distributed FileSystem(fs)通過分配RPC調(diào)用NameNode節(jié)點,用來確定文件起始Block的位置。接著DistributedFile System(fs).open()會返回一個FSDataInputStream對象給Client用來讀取數(shù)據(jù)流中的數(shù)據(jù)。最后,F(xiàn)SDataInputStream封裝了分布式文件輸入流(DFSInputStream)用于提供NameNode和DataNode的I/O.client調(diào)用對這個輸入流調(diào)用read()方法。
2.2.2? RTMP Client模塊的協(xié)議傳輸
大網(wǎng)絡(luò)大平臺中,RTMP Client模塊和系統(tǒng)信號網(wǎng)絡(luò)連接,這樣Red5與RTMP Client模塊的基本通信就關(guān)聯(lián)了,然后建立一個網(wǎng)絡(luò)流,完成各端口之間的輸入出視頻信號。這樣RTMP Client模塊就會達成RTMP協(xié)議與Red5設(shè)置的聯(lián)系,從而搭建了Red5和RTMP Client模塊兩者的網(wǎng)絡(luò)疏通,最后把數(shù)據(jù)流分配給HDFS Client接收。當有數(shù)據(jù)播放請求時,系統(tǒng)平臺就會發(fā)出信號給Red5,反之,直接返回現(xiàn)有網(wǎng)絡(luò)設(shè)置。
Red5完成數(shù)據(jù)流發(fā)送RTMP分配到Red5,主要操作為:
(1)搭建平臺中的RTMP Client過程RTMPClientrtmp Client=new RTMP Client(),尋找RTMP Client的connect()方法構(gòu)建數(shù)據(jù)流的平衡;
(2)調(diào)整rtmpClient.createStream()模塊的查詢方法構(gòu)建數(shù)據(jù)流連接;
(3)調(diào)用rtmpClient.publishStreamData()方法發(fā)送視頻數(shù)據(jù)。
3? 基于Hadoop的微課系統(tǒng)的設(shè)計與實現(xiàn)
以計算機網(wǎng)絡(luò)技術(shù)專業(yè)的大數(shù)據(jù)微課系統(tǒng)設(shè)計為例,使用HDFS,流媒體服務(wù)器使用Red5,流媒體播放器為JW Player,Web應(yīng)用為ASPNET設(shè)計的視頻點播系統(tǒng)USTS Micro。
3.1? 微課平臺構(gòu)架
硬件環(huán)境:采用TP-linkR9302服務(wù)器。
配置:CPU使用2.0 GHz 64 Cores128 GB;內(nèi)存為8× 32 GB 1 200 GB;硬盤采用ESXI8.0。
虛擬機Dell_HDFS_1~Dell_HDFS_9基本配制:CPU4 ×5,內(nèi)存64 GB。
軟件環(huán)境:CentOS 7.4,hadoop 3.2.0,Red5 1.0.5,HDFS- RTMP,對應(yīng)環(huán)境配置如表1所示。
3.2? 大數(shù)據(jù)微課設(shè)計流程
3.2.1? Hadoop微平臺的拓撲結(jié)構(gòu)
我院大數(shù)據(jù)專業(yè)計算機云機房已構(gòu)建成以拓撲結(jié)構(gòu)為基礎(chǔ)的局域網(wǎng)絡(luò),所以可以將現(xiàn)有實訓室和交換機進行組裝搭配,構(gòu)建Hadoop微課網(wǎng)絡(luò)教學平臺。網(wǎng)絡(luò)拓撲結(jié)構(gòu)如圖3所示。
3.2.2? 視頻數(shù)據(jù)源采集
本院微課視頻處理包括視頻數(shù)據(jù)采集、視頻數(shù)據(jù)清理和視頻數(shù)據(jù)整合,將終端數(shù)據(jù)源中的分離數(shù)據(jù)放入Hadoop平臺進行數(shù)據(jù)編輯。在數(shù)據(jù)采集中可以利用關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)入到HDFS中的Hive中。Hive提供類SQL功能,把類SQL語句翻譯成為MapReduce來翻譯文件數(shù)據(jù)流,非結(jié)構(gòu)化的數(shù)據(jù)則以目錄和文件的組織方式存儲到HDFS中,具體數(shù)據(jù)操作如圖4所示。微課中的具體視頻文件將以授課資源和老師搭建平臺為主要核心數(shù)據(jù)進行操作。
3.2.3? 系統(tǒng)調(diào)用過程的實現(xiàn)
3.2.3.1? 調(diào)用數(shù)據(jù)
在Hadoop分布式系統(tǒng)中可以運用MapReduce模塊運算出微課視頻框架對數(shù)據(jù)的轉(zhuǎn)碼并對文檔進行格式轉(zhuǎn)換處理。將微課中的數(shù)據(jù)流利用此功能進一步完善數(shù)據(jù)信息的分布式處理,其實現(xiàn)過程是首先選取系統(tǒng)中Hadoop并安裝轉(zhuǎn)碼所需的數(shù)據(jù)組件;接著采用HDFS-RTMP框架來處理文件上傳;同時把微課資源進行分段并上傳到HDFS;最后配置自定義MapReduce模塊,對微課視頻資源進行轉(zhuǎn)碼、并用。微課系統(tǒng)服務(wù)器結(jié)構(gòu)實現(xiàn)如圖5所示。
3.2.3.2? 開發(fā)實現(xiàn)
系統(tǒng)實現(xiàn)的過程中,首先在虛擬機上安裝Hadoop,再把其中的一臺模擬機DellHDFS_1直接設(shè)置為NameNode節(jié)點,其余定義為DataNode節(jié)點,并且在剩余的8臺模擬機DataNode上安裝HDFS-RTMP;同時將數(shù)據(jù)調(diào)用服務(wù)在Red5上配置完成,最后在平臺USTS MOOC上安裝調(diào)試微課大數(shù)據(jù)視頻開發(fā)系統(tǒng)。
其主要步驟是用戶提出視頻的請求連接播放,系統(tǒng)通過節(jié)點對數(shù)據(jù)進行分析和篩查,接著在大數(shù)據(jù)視頻的數(shù)據(jù)倉庫Hbase中查詢指定視頻保存的Hadoop節(jié)點URL地址,并在查詢過程中加以編輯和處理,把視頻數(shù)據(jù)流中的視頻通過URL地址分配給HDFS-RTMP。同時,HDFS-RTMP將URL地址從Hadoop數(shù)據(jù)集中調(diào)取視頻數(shù)據(jù),再用HDFS-RTMP轉(zhuǎn)換視頻數(shù)據(jù)為ETMP數(shù)據(jù)流并傳輸給Red5。最后,Red5把RTMP最終數(shù)據(jù)反饋給用戶,并播放視頻。其中系統(tǒng)各部件協(xié)作工作過程如圖6所示。
4? 結(jié)? 論
本文介紹了基于大數(shù)據(jù)Hadoop微課系統(tǒng)的設(shè)計,采用HDFS技術(shù)將微課系統(tǒng)中的數(shù)據(jù)存儲起來,并用HDFS-RTMP連接和協(xié)調(diào)HDFS與Red5數(shù)據(jù)流節(jié)點的走向,來完成分布式存儲機制下數(shù)據(jù)群的分發(fā)處理,給數(shù)據(jù)中心項目的Red5集群搭建方案,同時通過對Hadoop集群的緩沖訪問來調(diào)取數(shù)據(jù)倉庫的數(shù)據(jù),并完成了基于此流程Red5集群的性能測試,通過分析測試數(shù)據(jù)結(jié)果把視頻數(shù)據(jù)流中的視頻通過URL地址分配給HDFS-RTMP,最終實現(xiàn)數(shù)據(jù)的反饋,并播放視頻。希望HDFS-RTMP通過進一步的優(yōu)化設(shè)計來均衡分配,從而進一步提升系統(tǒng)的功能。
參考文獻:
[1] 王濤,邵國強,鄒紅,等.“基于Hadoop的大數(shù)據(jù)分析”課程規(guī)劃與設(shè)計 [J].電腦知識與技術(shù),2015,11(7):190-192.
[2] 吳密.云存儲技術(shù)在數(shù)字圖書館館藏資源安全存儲中的應(yīng)用研究 [J].河南圖書館學刊,2019,39(9):83-84+87.
[3] 胡鐵生.“微課”:區(qū)域教育信息資源發(fā)展的新趨勢 [J].電化教育研究,2011(10):61-65.
[4] 周可,王樺,李春花.云存儲技術(shù)及其應(yīng)用 [J].中興通訊技術(shù),2010,16(4):24-27.
[5] 陳娜,徐歆壹,宋紅兵,等.基于Hadoop的電信BSS大數(shù)據(jù)平臺建設(shè)研究 [J].電信科學,2013,29(3):36-40+47.
[6] 司雅楠.基于MapReduce的高校大數(shù)據(jù)分析挖掘 [D].新鄉(xiāng):河南師范大學,2016.
[7] 盧愛芬.基于Hadoop的大數(shù)據(jù)處理系統(tǒng)分析與研究 [J].現(xiàn)代信息科技,2020,4(2):109-111.
作者簡介:王珈珞(1983—),女,漢族,安徽蕪湖人,講師,碩士,研究方向:大數(shù)據(jù)應(yīng)用。