王珈珞 曹前



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