胡銳,胡伏原,陳麗春
(1.蘇州科技學院網(wǎng)絡與教育技術中心,江蘇蘇州215009;2.蘇州科技學院電子與信息工程學院,江蘇蘇州215009;3.中國電信股份有限公司吳江分公司,江蘇蘇州215200)
基于Hadoop的高校公共數(shù)據(jù)平臺的構建
胡銳1,胡伏原2,陳麗春3
(1.蘇州科技學院網(wǎng)絡與教育技術中心,江蘇蘇州215009;2.蘇州科技學院電子與信息工程學院,江蘇蘇州215009;3.中國電信股份有限公司吳江分公司,江蘇蘇州215200)
隨著高校信息化建設的發(fā)展,數(shù)據(jù)資源出現(xiàn)了快速的增長?,F(xiàn)有的存儲平臺已難以滿足信息化數(shù)據(jù)增長的要求。文中提出一種基于云存儲的公共數(shù)據(jù)平臺,該平臺以Hadoop為基礎,通過Hive、HBase和HDFS等技術實現(xiàn)數(shù)據(jù)資源的統(tǒng)一存儲和共享。實驗證明,該平臺性能基本可以代替?zhèn)鹘y(tǒng)的數(shù)據(jù)庫系統(tǒng)和文件存儲系統(tǒng)。
Hive;Hadoop;公共數(shù)據(jù)平臺
近年來,高校信息化的發(fā)展作為高校自身發(fā)展一部分,越來越受到高校管理者的重視。高校的數(shù)字資源成指數(shù)增長,產(chǎn)生了大量的業(yè)務數(shù)據(jù)。這些數(shù)據(jù)來自校內的各個應用系統(tǒng),具有海量、復雜、多樣和異構等特性,因此,形成了很多信息孤島。如何存儲和管理這些海量數(shù)據(jù),突破信息孤島,提升數(shù)據(jù)質量,實時數(shù)據(jù)交互,挖掘數(shù)據(jù)價值,是高校信息化管理者研究的熱點課題。因此,建立一個統(tǒng)一的數(shù)據(jù)交換和共享平臺,實現(xiàn)各個有離散業(yè)務系統(tǒng)之間的實時交互與共享,也是高校信息化發(fā)展的必然要求。
以云計算為基礎的公共數(shù)據(jù)平臺將硬件資源和網(wǎng)絡資源虛擬化從而實現(xiàn)強大的存儲和計算能力[1],并實現(xiàn)了對數(shù)據(jù)的統(tǒng)一管理同時降低管理成本,提高服務質量(Quality of Service,QoS),及數(shù)據(jù)處理的可靠性和擴展性。
文中在Hadoop的架構基礎上,設計并實現(xiàn)了校園公共數(shù)據(jù)平臺。該平臺的服務器使用Linux操作系統(tǒng),采用HDFS作為公共數(shù)據(jù)平臺數(shù)據(jù)存儲層,不僅可以滿足對大量數(shù)據(jù)快速處理的請求,而且對硬件性能要求不高,可以充分利用現(xiàn)有硬件設備。
1.1 云存儲
云存儲是在云計算(Cloud Computing)概念上延伸和發(fā)展出來的一個新的概念,是一種新型的網(wǎng)絡存儲技術,是指通過集群應用、網(wǎng)絡技術或分布式文件系統(tǒng)等功能,將網(wǎng)絡中大量各種不同類型的存儲設備通過應用軟件集合起來協(xié)同工作,共同對外提供數(shù)據(jù)存儲和業(yè)務訪問功能的一個系統(tǒng)[2]。因此,云存儲對使用者說是一種數(shù)據(jù)訪問服務,而不是一種存儲設備,云存儲的核心是應用和存儲結合,通過應用實現(xiàn)存儲設備向服務性存儲的轉變。
1.2 Hadoop
Hadoop是一個分布式系統(tǒng)基礎架構,它可以分布式操縱大量數(shù)據(jù)。用戶可以在不了解分布式底層細節(jié)的情況下,開發(fā)分布式程序,充分利用集群的高速運算和存儲能力。
Hadoop是一個可以更容易開發(fā)和運行處理大規(guī)模數(shù)據(jù)的軟件平臺。Hadoop實現(xiàn)了一個分布式文件系統(tǒng)(Hadoop Distributed File System),簡稱HDFS。HDFS具有高容錯性的特點,并且設計用來部署在低廉的硬件上[3],而且它提供高傳輸率來訪問應用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集的應用程序[4]。HDFS放寬了POSIX的要求這樣可以以流的形式訪問文件系統(tǒng)中的數(shù)據(jù)。
Hadoop主要的一些特點:(1)可擴展。不論是存儲的可擴展還是計算的可擴展都是Hadoop的設計根本。(2)經(jīng)濟。框架可以運行在任何普通的PC上。(3)可靠。分布式文件系統(tǒng)的備份恢復機制以及MapReduce的任務監(jiān)控保證了分布式處理的可靠性[5]。(4)高效。分布式文件系統(tǒng)的高效數(shù)據(jù)交互實現(xiàn)以及MapReduce結合Local Data處理的模式,為高效處理海量的信息提供基礎準備[6]。
1.3 HDFS
HDFS是Hadoop的分布式文件系統(tǒng),全稱為Hadoop Distributed Filesystem[7]。HDFS采用Master/Slave模式,一個HDFS集群系統(tǒng)是由一個Master和多個Slave構成。HDFS集群有兩類節(jié)點,并以管理者-工作者的方式運行,即一個NameNode(管理者)和多個DataNode(工作者)。NameNode管理文件系統(tǒng)的命名空間,維護著文件系統(tǒng)樹及整棵樹內所有的文件和目錄。這些信息以兩個文件形式永久保存在本地硬盤上:命名空間鏡像文件和編輯日志文件。DataNode是文件系統(tǒng)的工作節(jié)點,它根據(jù)需要存儲并檢索數(shù)據(jù)塊,并且定期向NameNode發(fā)送它們所存儲的塊的列表。
2.1 系統(tǒng)架構
以蘇州科技學院為例,公共數(shù)據(jù)平臺提供一種海量數(shù)據(jù)存取服務,基于SQL式的數(shù)據(jù)庫訪問方式和普通文件存儲服務。為了實現(xiàn)其功能,整個平臺采用四層架構,從下往上分別是:混合存儲層、數(shù)據(jù)管理層、數(shù)據(jù)接口層和應用層,如圖1所示。
(1)混合存儲層主要包括了各種物理機的硬盤和虛擬機的硬盤。在Hadoop系統(tǒng)的管理下為DataNode提供空間存儲服務。(2)數(shù)據(jù)管理層作為公共數(shù)據(jù)平臺的管理者,基于Hadoop的NameNode來負責管理文件系統(tǒng)的命名空間、集群配制信息維護、存儲塊的復制和整個平臺的存儲塊的動態(tài)平衡等。(3)數(shù)據(jù)接口層提供數(shù)據(jù)接口和文件接口。數(shù)據(jù)接口提供常用的ODBC和JDBC的數(shù)據(jù)訪問方式,文件接口通過Java平臺已經(jīng)封裝好的文件IO系統(tǒng)提供文件的存取服務,如圖2所示。(4)應用層為用戶提供數(shù)據(jù)庫服務和文件存儲服務,數(shù)據(jù)庫服務通過SQL語言進行數(shù)據(jù)的交互,文件存儲服務提供以URL地址形式進行文件的存取服務。
圖1 公共數(shù)據(jù)平臺架構
圖2 數(shù)據(jù)接口層
2.2 SQL數(shù)據(jù)存取
數(shù)據(jù)接口是基于Hive[8]和HBase[9]實現(xiàn)的,如圖3所示。Hadoop的HDFS做為公共數(shù)據(jù)平臺的底層數(shù)據(jù)存儲,Hive是Hadoop的一個數(shù)據(jù)倉庫工具,可以將結構化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供完整的SQL查詢功能,可以將SQL語句轉換為MapReduce任務進行。
2.3 文件存取
文件接口提供了統(tǒng)一的文件讀寫方式,以隊列的形式響應文件讀寫的請求,如圖4、5所示。
圖3 數(shù)據(jù)接口結構
圖4 文件接口結構
圖5 文件接口工作模式
URL地址模塊提供文件地址的管理,為寫文件分配該文件的唯一地址,為讀文件提供快速的文件地址查找。
I/O模塊負責控制文件讀寫速度及完整性。
FileQueue模塊分為InputFileQueue模塊和OutputFile-Queue模塊。I/O模塊讀文件流請求提交到InputFileQueue模塊中,InputFileQueue模塊負責將讀的請求進行隊列處理;I/O模塊寫文件流請求提交到OutputFileQueue模塊中,Output-FileQueue模塊負責將讀的請求進行隊列處理。
FileStream模塊分為InputFileStream模塊和Output-FileStream模塊。InputFileStream模塊根據(jù)InputFileQueue模塊中的請求將HDFS中對應的文件取出;OutputFileStream模塊負責將OutputFileQueue模塊中的請求待寫入文件寫入到HDFS中。
當I/O模塊接受到一個讀文件請求時,這個請求會被放到隊列InputFileQueue中,接著InputFileStream模塊會不斷地從InputFileQueue隊列中取出這個請求中包括的文件信息,根據(jù)文件信息打開HDFS的DFSInputStream流讀出文件。
當I/O模塊接受到一個寫文件請求時,這個文件會被放到隊列OutputFileQueue中,接著OutputFileStream模塊會不斷地從OutputFileQueue隊列中取出這個文件,打開HDFS的DFSOutputStream流,以字節(jié)流數(shù)據(jù)的形式寫入到HDFS中,并返回此文件在公共數(shù)據(jù)平臺上的地址。
為了檢測文中所設計公共數(shù)據(jù)平臺的性能,分別對該平臺的SQL應用和文件存儲進行測試。測試硬件環(huán)境,見表1。
表1 硬件環(huán)境
測試軟件環(huán)境: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。
對公共數(shù)據(jù)平臺的SQL應用性能測試,400萬條數(shù)據(jù),總數(shù)據(jù)量為200 GB,分10組同時進行寫數(shù)據(jù)操作,平均寫數(shù)據(jù)為9.57 Mb/s,而相同的數(shù)據(jù)量寫入到Oracle平均寫數(shù)據(jù)為9.87 Mb/s,如圖6所示。公共數(shù)據(jù)平臺的SQL應用在性能上與Oracle接近,隨著集群數(shù)據(jù)的增加,性能也會隨著增強。對公共數(shù)據(jù)平臺的文件存儲性能測試,總文件為1 TB,分9組進行讀寫文件操作,平均寫文件為21.51 Mb/s,平均讀文件32.34 Mb/s,如圖7所示。
圖6 公共數(shù)據(jù)平臺的SQL應用性能測試
圖7 公共數(shù)據(jù)平臺的文件存儲性能測試
基于hadoop的高校公共數(shù)據(jù)平臺一方面實現(xiàn)了高效的數(shù)據(jù)訪問接口,為校內各應用系統(tǒng)提供數(shù)據(jù)的存儲服務和數(shù)據(jù)交換業(yè)務,另一方面實現(xiàn)了海量的文件存儲接口,為校內各應用系統(tǒng)及用戶提供文件存儲服務。同時該平臺具有可擴展性、可靠性和經(jīng)濟性等特點,能夠滿足高?,F(xiàn)階段信息化的需求。
[1]楊亞軍.面向云計算環(huán)境的I/O虛擬化關鍵技術研究[D].北京:中國科學院研究生院,2011:5-6.
[2]李邐.淺析云計算背景下云存儲的優(yōu)勢與劣勢[J].計算機光盤軟件與應用,2013(23):1.
[3]鄧祥.基于Hadoop的海量日志數(shù)據(jù)處理研究與應用[D].廈門:廈門大學,2013:33.
[4]黃振奎.一種基于Hadoop平臺Dump模塊的設計與實現(xiàn)[D].北京:北京郵電大學,2012:3.
[5]陳文.基于云計算的醫(yī)療器械檢測信息化平臺研究[D].西安:西安工業(yè)大學,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-),男,安徽六安人,助理工程師,碩士,研究方向:大數(shù)據(jù)與物聯(lián)網(wǎng)。