趙波+郭瑞
摘要:文章構建了云中實驗室Hadoop大數據實驗平臺,用15臺服務器、兩臺交換機建立了虛擬化平臺,將大數據專業課所需的環境虛擬在服務器群集中;在大數據服務器中利用Hadoop的HDFS,MapReduce,Zookeeper和HBASE高可用性核心技術,有效地實現了中原工學院大數據教學系統的高可用性、可靠性,保證系統服務的不間斷運行。
關鍵詞:Hadoop;大數據;教學;HDFS
隨著大數據時代的到來,大型數據集或數據的分析處理能力很快成為各大行業機構克爭力的關鍵基礎。在大數據專業教學進行過程中,各類數據的安全性及運算能力越來越重要。大數據教學系統的正常運行受到硬件故障、硬件不足等影響。Hadoop架構具有_可靠性、商可拓展性、尚容錯性和高效性等優點,采用大型分布式集群,構建和部署數據存儲和數據分析系統,是大型數據的理想解決方案,可以高效管理和分析。由于Hadoop在資源管理、數據存儲、性能優化、作業調度、系統安全性和高可用性等方面的優勢,Hadoop技術在互聯網領域得到了廣泛的運用[1]。
1Hadoop核心技術概述
1.1Hadoop簡介
分布式系統是建立在網絡上的軟件系統。正是由于軟件的特性,分布式系統具有高度透明性。因此,分布式系統和網絡之間的區別更傾向于高層軟件(特別是操作系統),而不是硬件。透明性是指每個數據庫分布節點對于用戶的應用來說都是透明的,看不出是本地還是遠程。在分布式數據庫系統中,用戶感覺不到數據是分布的,即用戶不知道數據存于哪個站點以及事務在哪個站點上執行等。
Hadoop是分析、處理大數據的軟件平臺,是一個用Java語言實現的隸屬于Appach的開源軟件的框架,由大量計算機組成的集群實現了對海量數據進行的分布式計算。以分布式文件系統(Hadoop Distributed FileSystem,HDFS)和
MapReduce為核心的Hadoop文件系統為用戶提供了系統底層透明的分布式基礎架構。
1.2Hadoop的核心技術
Hadoop分布式計算安裝在Linux系統,本文介紹以Ubuntu14.04為基礎,其核心技術通過HDFS,MapReduce等技術支持實現,HDFS為海量數據提供存儲,而MapReduce為海量數據提供計算。
1.2.1HDFS分布式文件系統
HDFS由1個管理結點(NameNode)和N個數據結點(DataNode)組成,每個結點都是一臺普通的計算機,在使用操作上與人們熟悉的單機文件系統類似,均可以創建目錄,創建、刪除、修改、復制、查看文件內容等。
從HDFS觀點分析,集群中的服務器各盡其責,通力合作,共同提供了整個文件系統的服務。群集服務器根據各自的任務分為主服務器NameNode和數據服務器DataNode,NameNode作為管理者,管理所有的DataNode進行數據存儲、備份、組織記錄分配邏輯上的處理。簡單來說,NameNode就是運籌帷幄、負責布局指揮將軍,具體的存儲、備份是由DataNode這樣的戰士執行完成的。故此很多資料將HDFS的組織結構分為master(主人)和slaver(奴隸)的關系,其實和NameNode,DataNode劃分道理是一樣的[2]。
1.2.2MapReduce并行計算框架
MapReduce是一個基于集群的高性能并行計算平臺。MapReduce將運行于大規模集群上的復雜的并行計算過程高度抽象成兩個函數:Map(映射)和Reduce(歸約),這是一個令人瞠目結舌的模型,該模型簡單卻又威力巨大,是Google公司的核心計算模型。MapReduce對需要處理的任務有一個基本要求:待處理的數據集可以分解為多個小的任務,而且每個小任務都可以完全并行地進行處理。基于MapReduce寫出來的程序能夠在由上千臺商用計算機組成的大型集群上運行,并且以一種完全可靠容錯的方式并行地處理T級別的數據集,完成了Hadoop在集群上存儲的數據和任務的并行計算與處理。
從MapReduce計算模型分析,MapReduce框架和HDFS是運行在同一組節點上的,這種配置允許高效的調度己經存好數據節點上的任務,可以提高整個集群的網絡寬帶的利用率。另外,在Hadoop中,參與mapreduce作業執行任務的機器有兩個重要角色:TaskTracker,JobTracker。JobTracker(一個集群中只能有一臺)是用于管理和調度工作的,TaskTracker是用于執行工作的[3]。
1.2.3HBase分布式存儲系統
HBase(HadoopDatabase)是一個高性能、高可靠性、可伸縮、面向列的分布式存儲系統,即使廉價PCServer利用HBase技術也可搭建起大規模結構化存儲集群。
HBase是一個面向列的、分布式的開源數據庫。與一般的關系數據庫的區別主要有兩點:HBase基于列的而不是基于行的模式;HBase是一個適合于非結構化數據存儲的數據庫。
HBase利用HadoopHDFS作為其文件存儲系統,HadoopHDFS為HBase提供了高可靠性的底層存儲支持;利用HadoopMapReduce來處理HBase中的海量數據,HadoopMapReduce為HBase提供了高性能的計算能力;利用Zookeeper作為協同服務,ZooKeeper為HBase提供了穩定服務和failover機制[4]。
1.2.4ZooKeeper分布式鎖設施
ZooKeeper是一種為分布式應用所設計的高性能、高可用且一致的開源分布式應用程序協調服務,是Hadoop和Hbase的重要組件,是Hadoop集群管理的一個必不可少的模塊。該軟件為分布式應用提供一致性服務和功能,包括域名服務、配置維護、組服務、分布式同步等。主要用來解決分布式應用中出現的數據管理問題,如統一命名服務、集群管理、分布式消息隊列、分布式配置管理、分布式協調、分布式鎖等。從性能上來說,ZooKeeper決定了它能夠運用在大型的、分布式的系統當中。從可靠性來說,它不會因為某個節點的錯誤而崩潰。endprint
ZoopKeeper提供了一套分布式集群管理的機制,一種基于層次型的目錄樹的數據結構,并對樹中的節點進行有效管理,進而設計出更多的分布式的數據管理模型。ZooKeeper的終極目標是把復雜的易出錯的關鍵服務封裝好,以及將性能高效、功能穩定的系統和簡單易用的接口提供給用戶[5]。
2在高校教學系統中的應用
2.1中原工學院Hadoop教學系統的應用現狀
中原工學院的Hadoop教學系統通過學校部門統一招標采購,部署在學校實驗實訓中心,由實驗實訓中心統一管理和維護;原有的Hadoop系統單一地部署在物理計算機上,硬件利用率不高,隨著上課學生的增加,物理計算機的需求也大大增加,不能夠保證教學的正常運行。
隨著大數據專業招生數量的增加,學校安裝部署了大數據教學平臺。中原工學院在2017年購置了Hadoop教學系統云中實驗室,利用服務器虛擬化技術,在15臺服務器上虛擬出1000臺學生機教學環境Lmux系統。提高了服務器硬件的利用率,簡化了機房管理員的工作,保證了教學系統正常工作的可用性和穩定性。
2.2在中原工學院教學系統中的具體應用
2017年在5臺浪潮服務器和10臺寶德服務器上安裝部署Ubuntu14.04,并建立云中實驗室系統,云中實驗室系統分為Web教師端和Web學生端。學生通過Web學生端新建多個Ubuntu系統,在Ubuntu系統上搭建部署Hadoop,進行HDFS和MapReduce等實驗。學生通過云中實驗室Web學生端與教師進行互動,教師可以通過云中實驗室Web教師端對學生的實驗進行查看與批改。
2.3應用效果
多次測試和實際的應用表明,Hadoop服務器群集的高可用性技術滿足了中原工學院大數據教學系統的正常運行。云中實驗室的投入也提高了物理服務器的利用率。采用高可用性功能后,大數據教學系統服務器中斷代價極小,能夠滿足多數教學系統運行需要,為構建高可用的高校大數據教學系統提供了可靠的保障。
3結語
利用Hadoop構建中原工學院高可用性教學系統群集,將Hadoop,HDFS,MapReduce,HBASE,ZooKeeper等高
可用性技術應用在大數據日常教學中,保證了所有大數據教學的正常運行和大數據教學系統的持續可用性和穩定性,為高校大數據實驗提供了堅實的基礎。
[參考文獻]
[1]翟永東.Hadoop分布式文件系統(HDFS)可靠性的研究與優化[D].武漢:華中科技大學,2011.
[2]郝向濤.基于Hadoop的分布式文件系統技術分析及應用[D].武漢:武漢理工大學,2013.
[3]鄧自立.云計算中的網絡拓撲設計和Hadoop平臺研究[D].合肥:中國科學技術大學,2009.
[4]郝樹魁.HadoopHDFS和MapReduce架構淺析[J].郵電設計技術,2012(7):37-42.
[5]肖強,朱慶華,鄭華,等.Hadoop環境下的分布式協同過濾算法設計與實現[J].現代圖書情報技術,2013(1):83-89.endprint