任春華,廖雪花,唐思娩,嚴(yán)余松,孫尉筌
(1.四川師范大學(xué) 計算機與科學(xué)技術(shù)學(xué)院,四川 成都 610101;2.西南交通大學(xué) 交通運輸與物流學(xué)院,四川 成都 610031;3.西南交通大學(xué) 信息科學(xué)與技術(shù)學(xué)院,四川 成都 611756)
?
基于Hive和Impala的物流運力供應(yīng)鏈數(shù)據(jù)倉庫研究
任春華1,廖雪花1,唐思娩1,嚴(yán)余松2,孫尉筌3
(1.四川師范大學(xué)計算機與科學(xué)技術(shù)學(xué)院,四川成都610101;2.西南交通大學(xué)交通運輸與物流學(xué)院,四川成都610031;3.西南交通大學(xué)信息科學(xué)與技術(shù)學(xué)院,四川成都611756)
針對物流行業(yè)中傳統(tǒng)數(shù)據(jù)庫在海量數(shù)據(jù)存儲和交互性查詢方面的不足,提出了基于Hive和Impala物流運力供應(yīng)鏈數(shù)據(jù)倉庫的構(gòu)建方法,可以實現(xiàn)快速查詢。最后搭建阿里云上的PC集群,對海量供應(yīng)鏈數(shù)據(jù)進行查詢分析測試,表明該數(shù)據(jù)倉庫能滿足海量物流運力供應(yīng)鏈數(shù)據(jù)存儲以及查詢方面的需求。
Hive;Impala;物流運力供應(yīng)鏈;海量數(shù)據(jù);數(shù)據(jù)倉庫
近年來,隨著物流行業(yè)的不斷發(fā)展與進步,運力供應(yīng)鏈數(shù)據(jù)信息量急劇增加[1],運力供應(yīng)鏈?zhǔn)且粭l從頂端貨主到底端司機的運輸流網(wǎng)絡(luò),中間也存在著很多交互性的合作交易環(huán)節(jié)。海量數(shù)據(jù)存儲和交互性查詢分析使得傳統(tǒng)數(shù)據(jù)庫越來越難適應(yīng)物流行業(yè)信息化的建設(shè)需求。隨著“大數(shù)據(jù)”飛速發(fā)展的Hadoop和Hive應(yīng)運而生,Hive海量數(shù)據(jù)存儲技術(shù)基于MapReduce并行計算模式,能較好地滿足當(dāng)前大數(shù)據(jù)環(huán)境下的高并發(fā)、快增長的海量數(shù)據(jù)存儲和計算需求。
因此,本文提出基于Hive的運力供應(yīng)鏈數(shù)據(jù)倉庫構(gòu)建方案,同時,引用Impala的快速交互性查詢,最終通過實驗數(shù)據(jù)檢測,能較好地解決物流運力供應(yīng)鏈中不斷增長的數(shù)據(jù)存儲和查詢分析的需求。
近幾年來,Hive已解決多個行業(yè)的海量數(shù)據(jù)倉庫建設(shè)方案。但是物流行業(yè)在Hive數(shù)據(jù)倉庫方面未涉及到公開的報道。文獻《基于Hadoop和Hive的電信行業(yè)數(shù)據(jù)倉庫研究》給出了針對電信行業(yè)的Hive數(shù)據(jù)倉庫建設(shè)方案[2]。文獻《基于Hadoop/Hive的氣象數(shù)據(jù)分布式處理研究》對氣象方面的數(shù)據(jù)展開了研究[3]。文獻《基于Hive的水利普查數(shù)據(jù)倉庫》給出了水利行業(yè)的普查數(shù)據(jù)倉庫方案[4]。文獻《基于Hive的電力設(shè)備狀態(tài)信息數(shù)據(jù)倉庫》給出了電力設(shè)備狀態(tài)信息的數(shù)據(jù)倉庫方案[5]。但是這些行業(yè)都只設(shè)計了基于Hive的數(shù)據(jù)倉庫方案,并且通過了海量數(shù)據(jù)測試。但是,針對Hive的IO交互性查詢效率低下的問題,并沒有解決。
3.1Hadoop技術(shù)
Hadoop起源于Google。Google公司在2003年和2004年發(fā)表了兩篇Google技術(shù)的學(xué)術(shù)論文,一篇是谷歌文件系統(tǒng)(GFS)[6],另一篇是MapReduce[7]。它們提供了一個高效處理極大規(guī)模數(shù)據(jù)的平臺。Hadoop是一個可以存儲超大規(guī)模數(shù)據(jù)集的文件系統(tǒng),它是通過向外擴展方式構(gòu)建的集群。它有自己獨特的設(shè)計和性能特點,特別是HDFS以時延為代價對吞吐量進行了優(yōu)化,并且通過副本替換冗余達到了高可靠性。MapReduce是一個數(shù)據(jù)處理范式,它規(guī)范了數(shù)據(jù)在兩個處理階段(Map和Reduce)的輸入和輸出,并將其應(yīng)用于任意規(guī)模的大數(shù)據(jù)集。MapReduce與HDFS緊密結(jié)合,確保在任何時候,MapReduce任務(wù)直接在存儲所需數(shù)據(jù)的HDFS節(jié)點上運行[8-9]。
3.2Hive架構(gòu)
Hive是建立在Hadoop上的數(shù)據(jù)倉庫基礎(chǔ)構(gòu)架。它提供了一系列的工具,可以用來進行數(shù)據(jù)提取轉(zhuǎn)化加載(ETL),這是一種可以存儲、查詢和分析存儲在Hadoop中的大規(guī)模數(shù)據(jù)的機制。Hive定義了簡單的類SQL查詢語言,稱為HQL,它允許熟悉SQL的用戶查詢數(shù)據(jù)。同時,這個語言也允許熟悉MapReduce的開發(fā)者開發(fā)自定義的mapper和reducer來處理內(nèi)建的mapper和reducer無法完成的復(fù)雜的分析工作[10]。
3.3Impala系統(tǒng)
Impala是Cloudera公司主導(dǎo)開發(fā)的新型查詢系統(tǒng),它提供SQL語義,能查詢存儲在Hadoop的HDFS和HBase中的PB級大數(shù)據(jù)。已有的Hive系統(tǒng)雖然也提供了SQL語義,但由于Hive底層執(zhí)行使用的是MapReduce引擎,仍然是一個批處理過程,難以滿足查詢的交互性。相比之下,Impala的最大特點是查詢速度快[11]。
4.1基于Hive和Impala的物流運力供應(yīng)鏈數(shù)據(jù)倉庫結(jié)構(gòu)設(shè)計
從結(jié)構(gòu)上分析,基于Hive和Impala的物流供應(yīng)鏈數(shù)據(jù)倉庫主要由5層組成:源數(shù)據(jù)層、存儲層、計算層、數(shù)據(jù)分析層和應(yīng)用層,如圖1所示。

圖1 基于Hive和Impala的物流供應(yīng)鏈數(shù)據(jù)倉庫結(jié)構(gòu)圖
(1)源數(shù)據(jù)層。主要是物流運力供應(yīng)鏈中的數(shù)據(jù)源,包括歷史數(shù)據(jù)庫中的數(shù)據(jù)以及應(yīng)用系統(tǒng)后臺數(shù)據(jù)等。這些數(shù)據(jù)經(jīng)過人工處理,主要包括冗余數(shù)據(jù)的去除、數(shù)據(jù)精度以及數(shù)據(jù)類型的確定等。然后經(jīng)過ETL工具導(dǎo)入進入數(shù)據(jù)存儲層。
(2)存儲層。主要保存數(shù)據(jù)倉庫的所有數(shù)據(jù),存儲層建立在HDFS文件系統(tǒng)之上。使用Sqoop工具將源數(shù)據(jù)層中的供應(yīng)鏈數(shù)據(jù)導(dǎo)入到存儲層,這些數(shù)據(jù)以文件的形式存儲在不同的DataNode上,并執(zhí)行MapReduce操作。
(3)數(shù)據(jù)計算層。計算層將接收到的HQL語句轉(zhuǎn)化成MapReduce操作,從而完成查詢、分析等一系列任務(wù),進而得到想要的業(yè)務(wù)數(shù)據(jù)。
(4)數(shù)據(jù)分析層。根據(jù)具體業(yè)務(wù)新需求,過濾冗余的、有缺漏的、有異常或者與業(yè)務(wù)無關(guān)的信息。這樣能通過簡單的HQL語句,得到潛在的信息。這樣操作效率遠遠超過單獨編寫MapReduce函數(shù)來處理。同時還提供Impala交互性快速查詢。
(5)應(yīng)用層。主要是為后期應(yīng)用程序開發(fā)提供接口層,方便開發(fā)人員調(diào)用。
4.2海量物流運力供應(yīng)鏈數(shù)據(jù)存儲結(jié)構(gòu)設(shè)計
基于Hive和Impala的物流運力供應(yīng)鏈數(shù)據(jù)倉庫運行在Clouder的Hadoop集群上,主要由一個主節(jié)點(NameNode)和若干從節(jié)點(DataNode)組成。物流運力供應(yīng)鏈數(shù)據(jù)以文件的形式存儲在Hadoop的HDFS上。主節(jié)點用來控制、操作、運行整個集群,從節(jié)點用來存儲數(shù)據(jù)文件,并執(zhí)行MapReduce計算任務(wù)。為滿足物流過程中實時的交互性,Impala主要用作海量數(shù)據(jù)實時查詢分析。物流運力供應(yīng)鏈數(shù)據(jù)倉庫的海量數(shù)據(jù)存儲結(jié)構(gòu)如圖2所示。

圖2 物流運力供應(yīng)鏈數(shù)據(jù)倉庫的海量數(shù)據(jù)存儲結(jié)構(gòu)圖
為了驗證上述方案,本文構(gòu)建了基于Hive和Impala的物流供應(yīng)鏈數(shù)據(jù)倉庫實驗平臺。該平臺建立在阿里云服務(wù)器上,采用Clouder的Hadoop,該實驗平臺運行在4臺云服務(wù)器上。具體配置見表1。

表1 實驗平臺配置
實驗數(shù)據(jù)采用某企業(yè)的兩個應(yīng)用系統(tǒng)的后臺運力數(shù)據(jù)作為實驗對象,數(shù)據(jù)經(jīng)過ETL轉(zhuǎn)換進入數(shù)據(jù)倉庫。該實驗數(shù)據(jù)滿足大數(shù)據(jù)的特征,所以測試這些數(shù)據(jù)具有典型的代表性。使用不同數(shù)據(jù)量級別的數(shù)據(jù)和Mysql、Hive、Impala的查詢效率做對比,每一個數(shù)據(jù)量級采用測試10次結(jié)果的平均值。實驗結(jié)果如圖3所示。

圖3 實驗結(jié)果圖
通過實驗結(jié)果圖可以得出:在數(shù)據(jù)量4G范圍內(nèi),Mysql數(shù)據(jù)庫查詢方面具有明顯的優(yōu)勢;在10G以上的數(shù)據(jù)量時,Mysql查詢效率急速下降;而Hive和Imapla在10G數(shù)據(jù)量以上時,仍然表現(xiàn)出良好的性能,而且Impala的查詢效率明顯高于Hive。
綜上實驗分析可得,基于Hive和Impala的物流運力供應(yīng)鏈數(shù)據(jù)倉庫能夠?qū)A繑?shù)據(jù)可以在較快速度下完成查詢分析等任務(wù),并且該數(shù)據(jù)倉庫具有海量數(shù)據(jù)存儲能力和較好的擴展性。雖然Hive的IO性能較差,但Impala能彌補Hive的低IO性能,可以更加快速地完成查詢分析等任務(wù)。
本文針對當(dāng)前物流運力供應(yīng)鏈數(shù)據(jù)倉庫存在的海量數(shù)據(jù)存儲以及查詢方面的不足,設(shè)計并且實現(xiàn)了基于Hive和Impala的物流運力供應(yīng)鏈數(shù)據(jù)倉庫。通過某企業(yè)中的兩個應(yīng)用系統(tǒng)的運力數(shù)據(jù),結(jié)合設(shè)計的數(shù)據(jù)倉庫,實現(xiàn)了海量物流運力數(shù)據(jù)的存儲和查詢分析。實驗結(jié)果表明,該數(shù)據(jù)倉庫在海量物流運力數(shù)據(jù)存儲和查詢等方面具有較高的性能。但是,該測試環(huán)境只是小規(guī)模的集群,接下來將完成在生產(chǎn)環(huán)境下大規(guī)模的集群查詢分析等工作。
[1]梁紅波.云物流和大數(shù)據(jù)對物流模式的變革[J].中國流通經(jīng)濟,2014,28(5):41-45.
[2]王蘇衛(wèi).基于Hadoop和Hive的電信行業(yè)數(shù)據(jù)倉庫研究[J].電子技術(shù)與軟件工程,2013,(11):89.
[3]陳效杰,張金泉.基于Hadoop/Hive的氣象數(shù)據(jù)分布式處理研究[J].軟件導(dǎo)刊,2015,14(8):11-13.
[4]陳龍,萬定生,顧昕辰.基于Hive的水利普查數(shù)據(jù)倉庫[J].計算機與現(xiàn)代化,2014,(5):127-130.
[5]王德文,肖凱,肖磊.基于Hive的電力設(shè)備狀態(tài)信息數(shù)據(jù)倉庫[J].電力系統(tǒng)保護與控制,2013,(9):125-130.
[6]Google.谷歌文件系統(tǒng)(GFS)[DB/OL].http://research.google.com/archive/ gfs.html.
[7]Google.MapReduce[DB/OL].http://research.google.com/archive/mapreduce.html.
[8]查禮.基于Hadoop的大數(shù)據(jù)計算技術(shù)[J].科研信息化技術(shù)與應(yīng)用,2012,(3):26-33.
[9]Garry Turkington,張治起.Hadoop基礎(chǔ)教程[M].北京:人民郵電出版社,2014.
[10]曹坤.Hive編程指南[M].北京:人民郵電出版社,2013.
[11]郭超,劉波,林偉偉.基于Impala的大數(shù)據(jù)查詢分析計算性能研究[J].計算機應(yīng)用研究,2015,(5):1 330-1 334.
Study on Logistics Transportation Supply Chain Data Library Based on Hive and Impala
Ren Chunhua1,Liao Xuehua1,Tang Simian1,Yan Yusong2,Sun Weiquan3
(1. School of Computer Science Technology, Sichuan Normal University, Chengdu 610101;2. School of Transportation Logistics, Southwest Jiaotong University, Chengdu 610031;3. School of Information Science Technology, Southwest Jiaotong University, Chengdu 611756, China)
In this paper, in view of the inadequacy of the traditional logistics data library in terms of mass data storage and interactiveinquiry, we proposed to establish the logistics transportation supply chain data library based on Hive and Impala and at the end set up the PCcluster on the Ali cloud to inquire and analyze the mass supply chain data.
Hive; Impala; logistics transportation supply chain; mass data; data warehouse
TP311.13;F274
A
1005-152X(2016)01-0124-03
10.3969/j.issn.1005-152X.2016.01.032
2015-12-10
四川省科技廳科技支撐項目(2012GZX0090,2014GZX0002)
任春華(1989-),男,研究生,研究方向:計算機應(yīng)用技術(shù);廖雪花(1976-),通訊作者,女,碩士,副教授,研究方向:計算機網(wǎng)絡(luò)與信息系統(tǒng)、模式識別;唐思娩(1992-),女,研究生,研究方向:計算機應(yīng)用技術(shù);嚴(yán)余松(1963-),男,博士,教授,研究方向:物流工程、交通運輸工程;孫尉筌(1989-),男,研究生,研究方向:交通運輸工程。