胡銳,胡伏原,陳麗春
(1.蘇州科技學院網絡與教育技術中心,江蘇蘇州215009;2.蘇州科技學院電子與信息工程學院,江蘇蘇州215009;3.中國電信股份有限公司吳江分公司,江蘇蘇州215200)
基于Hadoop的高校公共數據平臺的構建
胡銳1,胡伏原2,陳麗春3
(1.蘇州科技學院網絡與教育技術中心,江蘇蘇州215009;2.蘇州科技學院電子與信息工程學院,江蘇蘇州215009;3.中國電信股份有限公司吳江分公司,江蘇蘇州215200)
隨著高校信息化建設的發展,數據資源出現了快速的增長。現有的存儲平臺已難以滿足信息化數據增長的要求。文中提出一種基于云存儲的公共數據平臺,該平臺以Hadoop為基礎,通過Hive、HBase和HDFS等技術實現數據資源的統一存儲和共享。實驗證明,該平臺性能基本可以代替傳統的數據庫系統和文件存儲系統。
Hive;Hadoop;公共數據平臺
近年來,高校信息化的發展作為高校自身發展一部分,越來越受到高校管理者的重視。高校的數字資源成指數增長,產生了大量的業務數據。這些數據來自校內的各個應用系統,具有海量、復雜、多樣和異構等特性,因此,形成了很多信息孤島。如何存儲和管理這些海量數據,突破信息孤島,提升數據質量,實時數據交互,挖掘數據價值,是高校信息化管理者研究的熱點課題。因此,建立一個統一的數據交換和共享平臺,實現各個有離散業務系統之間的實時交互與共享,也是高校信息化發展的必然要求。
以云計算為基礎的公共數據平臺將硬件資源和網絡資源虛擬化從而實現強大的存儲和計算能力[1],并實現了對數據的統一管理同時降低管理成本,提高服務質量(Quality of Service,QoS),及數據處理的可靠性和擴展性。
文中在Hadoop的架構基礎上,設計并實現了校園公共數據平臺。該平臺的服務器使用Linux操作系統,采用HDFS作為公共數據平臺數據存儲層,不僅可以滿足對大量數據快速處理的請求,而且對硬件性能要求不高,可以充分利用現有硬件設備。
1.1 云存儲
云存儲是在云計算(Cloud Computing)概念上延伸和發展出來的一個新的概念,是一種新型的網絡存儲技術,是指通過集群應用、網絡技術或分布式文件系統等功能,將網絡中大量各種不同類型的存儲設備通過應用軟件集合起來協同工作,共同對外提供數據存儲和業務訪問功能的一個系統[2]。因此,云存儲對使用者說是一種數據訪問服務,而不是一種存儲設備,云存儲的核心是應用和存儲結合,通過應用實現存儲設備向服務性存儲的轉變。
1.2 Hadoop
Hadoop是一個分布式系統基礎架構,它可以分布式操縱大量數據。用戶可以在不了解分布式底層細節的情況下,開發分布式程序,充分利用集群的高速運算和存儲能力。
Hadoop是一個可以更容易開發和運行處理大規模數據的軟件平臺。Hadoop實現了一個分布式文件系統(Hadoop Distributed File System),簡稱HDFS。HDFS具有高容錯性的特點,并且設計用來部署在低廉的硬件上[3],而且它提供高傳輸率來訪問應用程序的數據,適合那些有著超大數據集的應用程序[4]。HDFS放寬了POSIX的要求這樣可以以流的形式訪問文件系統中的數據。
Hadoop主要的一些特點:(1)可擴展。不論是存儲的可擴展還是計算的可擴展都是Hadoop的設計根本。(2)經濟??蚣芸梢赃\行在任何普通的PC上。(3)可靠。分布式文件系統的備份恢復機制以及MapReduce的任務監控保證了分布式處理的可靠性[5]。(4)高效。分布式文件系統的高效數據交互實現以及MapReduce結合Local Data處理的模式,為高效處理海量的信息提供基礎準備[6]。
1.3 HDFS
HDFS是Hadoop的分布式文件系統,全稱為Hadoop Distributed Filesystem[7]。HDFS采用Master/Slave模式,一個HDFS集群系統是由一個Master和多個Slave構成。HDFS集群有兩類節點,并以管理者-工作者的方式運行,即一個NameNode(管理者)和多個DataNode(工作者)。NameNode管理文件系統的命名空間,維護著文件系統樹及整棵樹內所有的文件和目錄。這些信息以兩個文件形式永久保存在本地硬盤上:命名空間鏡像文件和編輯日志文件。DataNode是文件系統的工作節點,它根據需要存儲并檢索數據塊,并且定期向NameNode發送它們所存儲的塊的列表。
2.1 系統架構
以蘇州科技學院為例,公共數據平臺提供一種海量數據存取服務,基于SQL式的數據庫訪問方式和普通文件存儲服務。為了實現其功能,整個平臺采用四層架構,從下往上分別是:混合存儲層、數據管理層、數據接口層和應用層,如圖1所示。
(1)混合存儲層主要包括了各種物理機的硬盤和虛擬機的硬盤。在Hadoop系統的管理下為DataNode提供空間存儲服務。(2)數據管理層作為公共數據平臺的管理者,基于Hadoop的NameNode來負責管理文件系統的命名空間、集群配制信息維護、存儲塊的復制和整個平臺的存儲塊的動態平衡等。(3)數據接口層提供數據接口和文件接口。數據接口提供常用的ODBC和JDBC的數據訪問方式,文件接口通過Java平臺已經封裝好的文件IO系統提供文件的存取服務,如圖2所示。(4)應用層為用戶提供數據庫服務和文件存儲服務,數據庫服務通過SQL語言進行數據的交互,文件存儲服務提供以URL地址形式進行文件的存取服務。

圖1 公共數據平臺架構

圖2 數據接口層
2.2 SQL數據存取
數據接口是基于Hive[8]和HBase[9]實現的,如圖3所示。Hadoop的HDFS做為公共數據平臺的底層數據存儲,Hive是Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射為一張數據庫表,并提供完整的SQL查詢功能,可以將SQL語句轉換為MapReduce任務進行。
2.3 文件存取
文件接口提供了統一的文件讀寫方式,以隊列的形式響應文件讀寫的請求,如圖4、5所示。

圖3 數據接口結構

圖4 文件接口結構

圖5 文件接口工作模式
URL地址模塊提供文件地址的管理,為寫文件分配該文件的唯一地址,為讀文件提供快速的文件地址查找。
I/O模塊負責控制文件讀寫速度及完整性。
FileQueue模塊分為InputFileQueue模塊和OutputFile-Queue模塊。I/O模塊讀文件流請求提交到InputFileQueue模塊中,InputFileQueue模塊負責將讀的請求進行隊列處理;I/O模塊寫文件流請求提交到OutputFileQueue模塊中,Output-FileQueue模塊負責將讀的請求進行隊列處理。
FileStream模塊分為InputFileStream模塊和Output-FileStream模塊。InputFileStream模塊根據InputFileQueue模塊中的請求將HDFS中對應的文件取出;OutputFileStream模塊負責將OutputFileQueue模塊中的請求待寫入文件寫入到HDFS中。
當I/O模塊接受到一個讀文件請求時,這個請求會被放到隊列InputFileQueue中,接著InputFileStream模塊會不斷地從InputFileQueue隊列中取出這個請求中包括的文件信息,根據文件信息打開HDFS的DFSInputStream流讀出文件。
當I/O模塊接受到一個寫文件請求時,這個文件會被放到隊列OutputFileQueue中,接著OutputFileStream模塊會不斷地從OutputFileQueue隊列中取出這個文件,打開HDFS的DFSOutputStream流,以字節流數據的形式寫入到HDFS中,并返回此文件在公共數據平臺上的地址。
為了檢測文中所設計公共數據平臺的性能,分別對該平臺的SQL應用和文件存儲進行測試。測試硬件環境,見表1。

表1 硬件環境
測試軟件環境:CentOS Linux release 6.4(Final)2.6.32-358.2.1.el6.x86_64;hadoop-2.2.0;hive-0.13.1;hbase-0.96.2。
對公共數據平臺的SQL應用性能測試,400萬條數據,總數據量為200 GB,分10組同時進行寫數據操作,平均寫數據為9.57 Mb/s,而相同的數據量寫入到Oracle平均寫數據為9.87 Mb/s,如圖6所示。公共數據平臺的SQL應用在性能上與Oracle接近,隨著集群數據的增加,性能也會隨著增強。對公共數據平臺的文件存儲性能測試,總文件為1 TB,分9組進行讀寫文件操作,平均寫文件為21.51 Mb/s,平均讀文件32.34 Mb/s,如圖7所示。

圖6 公共數據平臺的SQL應用性能測試

圖7 公共數據平臺的文件存儲性能測試
基于hadoop的高校公共數據平臺一方面實現了高效的數據訪問接口,為校內各應用系統提供數據的存儲服務和數據交換業務,另一方面實現了海量的文件存儲接口,為校內各應用系統及用戶提供文件存儲服務。同時該平臺具有可擴展性、可靠性和經濟性等特點,能夠滿足高校現階段信息化的需求。
[1]楊亞軍.面向云計算環境的I/O虛擬化關鍵技術研究[D].北京:中國科學院研究生院,2011:5-6.
[2]李邐.淺析云計算背景下云存儲的優勢與劣勢[J].計算機光盤軟件與應用,2013(23):1.
[3]鄧祥.基于Hadoop的海量日志數據處理研究與應用[D].廈門:廈門大學,2013:33.
[4]黃振奎.一種基于Hadoop平臺Dump模塊的設計與實現[D].北京:北京郵電大學,2012:3.
[5]陳文.基于云計算的醫療器械檢測信息化平臺研究[D].西安:西安工業大學,2014:11.
[6]方雷.基于云計算的土地資源服務高效處理平臺關鍵技術探索與研究[D].杭州:浙江大學,2011:82.
[7]The Apache Software Foundation.Text:Welcome to Apache Hadoop[EB/OL].[2015-05-05].http://hadoop.apache.org/index.html#What+Is+ Apache+Hadoop%3F.
[8]The Apache Software Foundation.Text:Apache Hive[EB/OL].[2015-06-03].https://cwiki.apache.org/confluence/display/Hive/GettingStarted.
[9]Apache HBase Team.Text:Apache HBase?Reference Guide[EB/OL].[2015-04-11].http://hbase.apache.org/book.html#_introduction.
Construction of public data platform of university based on Hadoop
HU Rui1,HU Fuyuan2,CHEN Lichun3
(1.Network and Educational Technology Center,SUST,Suzhou 215009,China;2.School of Electronic&Information Engineering,SUST,Suzhou 215009,China;3.Wujian Branch of China Telecom Co.,Ltd,Suzhou 215200,China)
Data resources of colleges have developed rapidly in recent years.However,the existing storage platform is difficult to meet the requirements of data growth.It is important to build a public data platform based on cloud storage to solve the problem.This paper mainly introduces the application of Hadoop technology in the construction of the university public data platform.It presents the system architecture,data interface and key technologies of the university public data platform.The experiment shows that this platform can replace the traditional database system and file storage system.
Hive;Hadoop;public data platform
TP393
A
1672-0687(2015)03-0052-04
責任編輯:艾淑艷
2015-01-12
國家自然科學基金資助項目(61472267)
胡銳(1986-),男,安徽六安人,助理工程師,碩士,研究方向:大數據與物聯網。