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