趙繼新
摘要:隨著社會(huì)經(jīng)濟(jì)的高速發(fā)展,交通物流行業(yè)對(duì)交通數(shù)據(jù)存儲(chǔ)、管理和分析的要求越來(lái)越高。文章在對(duì)比Hadoop與MPP等技術(shù)的基礎(chǔ)上,基于對(duì)MapReduce并行計(jì)算、HDFS分布式文件系統(tǒng)、數(shù)倉(cāng)工具Hive和Sqoop采集組件等架構(gòu)的分析,研究了Hadoop交通物流數(shù)據(jù)倉(cāng)庫(kù)的構(gòu)建技術(shù),建設(shè)了交通物流數(shù)據(jù)倉(cāng)庫(kù),實(shí)現(xiàn)了海量交通物流數(shù)據(jù)文件的元數(shù)據(jù)管理、分布式存儲(chǔ)和交通物流數(shù)據(jù)查詢。經(jīng)測(cè)試驗(yàn)證:利用交通物流數(shù)據(jù)倉(cāng)庫(kù)進(jìn)行大型交通物流數(shù)據(jù)文件的存儲(chǔ)和操作時(shí),能有效提高數(shù)據(jù)吞吐率及其讀寫(xiě)效率。
關(guān)鍵詞:交通物流數(shù)據(jù);數(shù)據(jù)倉(cāng)庫(kù);Hadoop
中圖分類(lèi)號(hào):U492.3 文獻(xiàn)標(biāo)識(shí)碼:A DOI:10.13282/j.cnki.wccst.2019.10.045
文章編號(hào):1673-4874(2019)10-0162-04
0引言
隨著交通物流現(xiàn)代化水平的提高、業(yè)務(wù)體系的發(fā)展和信息化能力的增強(qiáng),已逐步累積了海量、多源、動(dòng)態(tài)、異構(gòu)的交通物流信息資料,全量交通物流數(shù)據(jù)所蘊(yùn)含的信息非常豐富。如何將如此海量異構(gòu)的信息資源進(jìn)行有效利用,是現(xiàn)階段交通物流管理部’刁的迫切需要。
傳統(tǒng)的交通物流數(shù)據(jù)庫(kù)是基于關(guān)系型數(shù)據(jù)庫(kù)開(kāi)發(fā)的,不管是否采用分布式架構(gòu),都無(wú)法實(shí)現(xiàn)對(duì)交通物流海量異構(gòu)數(shù)據(jù)的高效處理。而Hadoop集群技術(shù)能夠?yàn)楹A俊悩?gòu)的交通物流數(shù)據(jù)提供高效的數(shù)據(jù)存儲(chǔ)、篩選、加工和分析挖掘,其分布式的系統(tǒng)基礎(chǔ)架構(gòu),可以通過(guò)增加Hadoop數(shù)據(jù)節(jié)點(diǎn)提高系統(tǒng)處理的容量,且對(duì)部署的硬件設(shè)備性能要求不高,能夠有效節(jié)約存儲(chǔ)成本。
本文基于Hadoop分布式系統(tǒng)架構(gòu),設(shè)計(jì)并實(shí)現(xiàn)了支持海量、異構(gòu)的交通物流數(shù)據(jù)倉(cāng)庫(kù).Hadoop集群可以方便地?cái)U(kuò)充存儲(chǔ)容量,分布式計(jì)算可以高效地處理數(shù)據(jù),基于Hive可以便捷地管理元數(shù)據(jù),完全滿足了海量交通物流數(shù)據(jù)存儲(chǔ)管理和分析應(yīng)用的實(shí)際要求。
1交通物流數(shù)據(jù)倉(cāng)庫(kù)構(gòu)建方法
針對(duì)交通物流數(shù)據(jù)存儲(chǔ)管理和分析的實(shí)際需要,對(duì)MPP和Hadoop兩種技術(shù)進(jìn)行系統(tǒng)的分析和比較。
1.1 MPP技術(shù)
MPP(Massivel parallel processing)是面向結(jié)構(gòu)化的數(shù)據(jù)進(jìn)行處理和設(shè)計(jì)的數(shù)據(jù)庫(kù)管理系統(tǒng),是一種大規(guī)模并行處理數(shù)據(jù)庫(kù)。該系統(tǒng)中的每個(gè)節(jié)點(diǎn)CPU均無(wú)法對(duì)另一節(jié)點(diǎn)內(nèi)存進(jìn)行直接訪問(wèn),節(jié)點(diǎn)之間通過(guò)互聯(lián)網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)信息的交互。基于共享資源架構(gòu),易于實(shí)現(xiàn)資源的水平擴(kuò)展。該數(shù)據(jù)庫(kù)具有統(tǒng)一的SQL接口,適用于結(jié)構(gòu)化數(shù)據(jù)的復(fù)雜查詢、深度分析及自主分析類(lèi)應(yīng)用。
MPP數(shù)據(jù)庫(kù)在靈活查詢、復(fù)雜關(guān)聯(lián)匯總、深度分析等方面性能出眾,適合交通物流數(shù)據(jù)中心場(chǎng)景中的數(shù)據(jù)挖掘、自助分析、數(shù)據(jù)關(guān)聯(lián)等復(fù)雜邏輯加工場(chǎng)景,但是MPP數(shù)據(jù)庫(kù)在大規(guī)模數(shù)據(jù)及半結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)處理方面性能會(huì)下降,無(wú)法滿足交通物流中的多源異構(gòu)數(shù)據(jù)的應(yīng)用場(chǎng)景需要。
1.2Hadoop技術(shù)
Hadoop是一個(gè)開(kāi)源的分布式計(jì)算架構(gòu),由Apache基金會(huì)開(kāi)發(fā),核心部件包括兩部分:分布式文件系統(tǒng)HDFS和分布式數(shù)據(jù)處理MapReduce。HDFS既可以支持結(jié)構(gòu)化數(shù)據(jù),也可以支持半/非結(jié)構(gòu)化數(shù)據(jù),能夠存儲(chǔ)、查詢和分析所需的數(shù)據(jù),文件按照塊進(jìn)行劃分存儲(chǔ)在多臺(tái)機(jī)器上,并通過(guò)副本的方式保證高可用;MapReduce通過(guò)Map的方式將計(jì)算任務(wù)擴(kuò)展到多臺(tái)機(jī)器上,進(jìn)而通過(guò)Reduce的方式將多個(gè)節(jié)點(diǎn)上的結(jié)果進(jìn)行合并。
Hadoop基于HDFS及MapReduce之上的SQLon Hadoop組件Hive,通過(guò)定義類(lèi)SQL語(yǔ)言,可以大幅簡(jiǎn)化SQL用戶進(jìn)行數(shù)據(jù)查詢的過(guò)程。Hive查詢操作的過(guò)程必須嚴(yán)格遵循Hadoop MaCReduce的作業(yè)執(zhí)行模型,用戶的Hive SQL語(yǔ)句通過(guò)解釋器能夠轉(zhuǎn)換成MapReduce作業(yè),并提交到Hadoop集群,Hadoop對(duì)作業(yè)執(zhí)行過(guò)程進(jìn)行監(jiān)控,并將作業(yè)執(zhí)行結(jié)果返回用戶。
在Hadoop架構(gòu)中,Hive只能用于結(jié)構(gòu)化數(shù)據(jù),而更底層的MaCReduce可用于結(jié)構(gòu)化與非結(jié)構(gòu)化數(shù)據(jù)。在調(diào)優(yōu)、性能方面,Hive不如MapReduce,尤其是MapReduce可以針對(duì)性地對(duì)某些應(yīng)用進(jìn)行算法優(yōu)化。此外,Hive還具備類(lèi)SQL語(yǔ)言實(shí)驗(yàn)的機(jī)制,可以大幅提高開(kāi)發(fā)人員工效,并降低工作量。
1.3 對(duì)比分析
由于MPP與Hadoop分別采用了不同的理論依據(jù)和技術(shù)路線,雖同屬分布式計(jì)算,但各自的優(yōu)缺點(diǎn)及適用范圍不同。Hadoop具有對(duì)非結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)的處理優(yōu)勢(shì),適用于海量數(shù)據(jù)的批量化處理。而MPP適合進(jìn)行大數(shù)據(jù)的高效處理,能有效替代現(xiàn)有的關(guān)系數(shù)據(jù)庫(kù),但其可用性在大規(guī)模集群數(shù)據(jù)下會(huì)降低。MPP適用于數(shù)據(jù)集市和多維數(shù)據(jù)分析等,Hadoop則更適用于批量數(shù)據(jù)ETL及海量數(shù)據(jù)查詢存儲(chǔ)等。
交通物流數(shù)據(jù)往往呈現(xiàn)多源、異構(gòu)及海量等特征,除了結(jié)構(gòu)化的業(yè)務(wù)數(shù)據(jù)還包含各類(lèi)半結(jié)構(gòu)化、非結(jié)構(gòu)化的GIS數(shù)據(jù)、影像數(shù)據(jù)及視頻流媒體數(shù)據(jù)等,在分析多源異構(gòu)的海量交通物流數(shù)據(jù)時(shí),需要聯(lián)合結(jié)構(gòu)化與半/非結(jié)構(gòu)化數(shù)據(jù)一起分析。因此,通過(guò)綜合比較與對(duì)比分析,本文采用Hadoop集群技術(shù)構(gòu)建交通物流數(shù)據(jù)倉(cāng)庫(kù)。
2 交通物流數(shù)據(jù)倉(cāng)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)
本文基于Hadoop分布式架構(gòu)進(jìn)行交通物流數(shù)據(jù)倉(cāng)庫(kù)的設(shè)計(jì),目標(biāo)是實(shí)現(xiàn)海量交通物流數(shù)據(jù)的分布式存儲(chǔ),以滿足交通物流管理部門(mén)對(duì)交通物流數(shù)據(jù)的備份、恢復(fù)、管理、存儲(chǔ)和共享等各項(xiàng)需求。
交通物流數(shù)據(jù)倉(cāng)庫(kù)體系結(jié)構(gòu)由集群上的HDFS分布式存儲(chǔ)、YARN資源調(diào)度、Sqoop數(shù)據(jù)采集、Ma-pReduce并行計(jì)算及Hive數(shù)據(jù)訪司組件組成?;诓煌臄?shù)據(jù)源,收集并匯聚到統(tǒng)一的數(shù)據(jù)倉(cāng)庫(kù),由數(shù)據(jù)倉(cāng)庫(kù)來(lái)高效集中地進(jìn)行存儲(chǔ)和管理,并為交通云提供數(shù)據(jù)基礎(chǔ)和分析、挖掘及預(yù)報(bào)預(yù)測(cè)等支持和服務(wù)。
2.1交通物流分布式文件存儲(chǔ)設(shè)計(jì)與實(shí)現(xiàn)
HDFS(Hadoop Distributed File System,基于Ha-doop的文件系統(tǒng))可以進(jìn)行分布式計(jì)算,其容錯(cuò)性能好、數(shù)據(jù)吞吐率高、易于部署實(shí)施,非常適用于信息量大、且讀寫(xiě)頻繁的交通物流數(shù)據(jù)存儲(chǔ)。
集群中主控管理層里有一個(gè)交通物流主控節(jié)點(diǎn)(NameNode),存儲(chǔ)層有4個(gè)數(shù)據(jù)節(jié)點(diǎn)(DataNode)。主控節(jié)點(diǎn)主要負(fù)責(zé)文件系統(tǒng)命名空間(NameSpace)的維護(hù)、協(xié)調(diào)客戶端文件訪司、記錄命名空間內(nèi)的改動(dòng)及命名空間的屬性變化。數(shù)據(jù)節(jié)點(diǎn)主要負(fù)責(zé)進(jìn)行其物理節(jié)點(diǎn)的存儲(chǔ)管理。
數(shù)據(jù)倉(cāng)庫(kù)中的物流數(shù)據(jù)采用“一次寫(xiě)入、多次讀取”的方式,通常以64MB規(guī)格切分為不同的數(shù)據(jù)塊(Block),并盡量將每個(gè)數(shù)據(jù)塊分散存儲(chǔ)到不同的數(shù)據(jù)節(jié)點(diǎn),同時(shí)完成多重備份,確保任意節(jié)點(diǎn)的故障都不會(huì)對(duì)數(shù)據(jù)的可操作性與完整性產(chǎn)生影響。數(shù)據(jù)倉(cāng)庫(kù)在執(zhí)行作業(yè)的過(guò)程中,會(huì)將MapReduce的每個(gè)作業(yè)處理結(jié)果直接寫(xiě)入數(shù)據(jù)倉(cāng)庫(kù)文件系統(tǒng)。執(zhí)行作業(yè)時(shí),基于HDFS的容錯(cuò)性能,若某節(jié)點(diǎn)出現(xiàn)故障,則只需重新調(diào)度執(zhí)行該節(jié)點(diǎn)的任務(wù)即可,無(wú)需重新提交查詢。
2.2 交通物流數(shù)據(jù)MapReduce任務(wù)設(shè)計(jì)與實(shí)現(xiàn)
在本文建設(shè)的物流數(shù)據(jù)倉(cāng)庫(kù)中,元數(shù)據(jù)管理和海量數(shù)據(jù)處理采用了基于Hadoop的開(kāi)源數(shù)據(jù)工具Hive。海量的物流數(shù)據(jù)直接存儲(chǔ)在HDFS中,利用類(lèi)SOL語(yǔ)言進(jìn)行自動(dòng)化處理和存儲(chǔ)管理。按分布式存儲(chǔ)的方式在HDFS中對(duì)物流數(shù)據(jù)進(jìn)行物理存儲(chǔ),利用Hive轉(zhuǎn)換和解析元數(shù)據(jù),形成一系列MapReduce任務(wù),最后通過(guò)這些任務(wù)的執(zhí)行來(lái)完成數(shù)據(jù)處理。
基于Hive提供的數(shù)據(jù)存儲(chǔ)與處理機(jī)制,能夠把物流數(shù)據(jù)的元數(shù)據(jù)和日志映射為表結(jié)構(gòu),并形成Ma-pReduce任務(wù),從而完成數(shù)據(jù)和日志的處理。基于瀏覽器端的Hive接口,能大幅降低MapReduce作業(yè)難度,從而節(jié)省數(shù)據(jù)開(kāi)發(fā)工作量。
通過(guò)分離簡(jiǎn)化管理元數(shù)據(jù)等,各數(shù)據(jù)節(jié)點(diǎn)可以直接訪司并具有計(jì)算性能,從而達(dá)到數(shù)據(jù)共享和高性能分析的要求。元數(shù)據(jù)是數(shù)據(jù)質(zhì)量、內(nèi)容、條件等數(shù)據(jù)的數(shù)據(jù),是數(shù)據(jù)質(zhì)量水平和來(lái)源的描述,也是數(shù)據(jù)適用范圍及可信度的判別依據(jù)。Hive完成了Hadoop與關(guān)系數(shù)據(jù)庫(kù)的結(jié)合,由MapReduce完成數(shù)據(jù)轉(zhuǎn)換與裝載等,由關(guān)系型數(shù)據(jù)庫(kù)來(lái)管理元數(shù)據(jù)并進(jìn)行密集型任務(wù)的查詢。
3 交通物流數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)性能分析
本文基于已設(shè)計(jì)構(gòu)建的數(shù)據(jù)倉(cāng)庫(kù),利用已匯聚的5.8億條實(shí)際交通物流信息數(shù)據(jù),進(jìn)行數(shù)據(jù)倉(cāng)庫(kù)的性能分析。數(shù)據(jù)包含每一輛通過(guò)高速公路收費(fèi)站的車(chē)輛相關(guān)收費(fèi)信息,包括車(chē)牌號(hào)、入站口及入站時(shí)間、出站口及出站時(shí)間、實(shí)收金額等信息,其關(guān)系示意如圖1所示?;谕粩?shù)據(jù)集,分別在Hadoop平臺(tái)以及SQL Server上完成數(shù)據(jù)采集、數(shù)據(jù)查詢、數(shù)據(jù)轉(zhuǎn)換以及數(shù)據(jù)導(dǎo)出的測(cè)試,比較其性能。
基于Hadoop架構(gòu)的交通物流數(shù)據(jù)倉(cāng)庫(kù)中的Sqoop數(shù)據(jù)采集組件,能夠解決Hadoop和關(guān)系型數(shù)據(jù)庫(kù)之間的數(shù)據(jù)傳遞,基于Sqoop組件能快速實(shí)現(xiàn)關(guān)系型數(shù)據(jù)庫(kù)和HDFS之間的數(shù)據(jù)導(dǎo)入與導(dǎo)出。Sqoop數(shù)據(jù)采集組件是采用MapReduce任務(wù)的形式分布式并行進(jìn)行的。在Hadoop平臺(tái)上使用Sqoop組件對(duì)數(shù)據(jù)進(jìn)行采集,測(cè)試結(jié)果如表1所示。
實(shí)驗(yàn)中,基于Hadoop和Hive進(jìn)行數(shù)據(jù)組合訓(xùn)練后,復(fù)制到MapReduce上,再把測(cè)試數(shù)據(jù)集的文件映射為數(shù)據(jù)庫(kù)表,并提供完成的類(lèi)SQL查詢功能,可以將Hive轉(zhuǎn)換為MapReduce任務(wù)執(zhí)行。對(duì)測(cè)試數(shù)據(jù)集進(jìn)行Hive查詢操作,結(jié)果如表2所示。
在數(shù)據(jù)轉(zhuǎn)換測(cè)試中,使用類(lèi)SQL的Hive腳本進(jìn)行Group By操作,統(tǒng)計(jì)每天的收費(fèi)金額,其結(jié)果如表3所示。
本實(shí)驗(yàn)主要目的在于測(cè)試基于Hadoop架構(gòu)的交通物流數(shù)據(jù)倉(cāng)庫(kù)在不同數(shù)據(jù)量下系統(tǒng)的采集、轉(zhuǎn)換和導(dǎo)出功能的性能。
在相同的實(shí)驗(yàn)環(huán)境下SQL Server在執(zhí)行5.8億條數(shù)據(jù)轉(zhuǎn)換腳本時(shí),經(jīng)過(guò)3h的運(yùn)算,最終由于內(nèi)存溢出而導(dǎo)致腳本執(zhí)行失敗。在Hadoop集群中計(jì)算相同數(shù)據(jù),僅耗時(shí)29min13S便完成轉(zhuǎn)換任務(wù)。由此可見(jiàn)大數(shù)據(jù)平臺(tái)在此數(shù)據(jù)量下的計(jì)算能力優(yōu)于傳統(tǒng)數(shù)據(jù)庫(kù)。
在實(shí)驗(yàn)過(guò)程中,基于Hadoop的交通物流數(shù)據(jù)倉(cāng)庫(kù)資源占用率不到80%。本次實(shí)驗(yàn)環(huán)境使用的交換機(jī)設(shè)備為H3C S1208和H3C$5130-28S-SI,實(shí)驗(yàn)數(shù)據(jù)持續(xù)2h不間斷地向HDFS文件系統(tǒng)中寫(xiě)入數(shù)據(jù),在寫(xiě)入的過(guò)程中,測(cè)試數(shù)據(jù)集流量達(dá)到網(wǎng)絡(luò)鏈路承載上限,即占滿整個(gè)千兆以太網(wǎng)鏈路,平均速率為154.59Mbps,在滿負(fù)荷的情況下,仍能以最快速度完成此任務(wù),性能表現(xiàn)良好。
4 結(jié)語(yǔ)
本文對(duì)構(gòu)建交通物流數(shù)據(jù)倉(cāng)庫(kù)的必要性和重要性進(jìn)行了系統(tǒng)闡述,分析對(duì)比了Hadoop與MPP兩種技術(shù)構(gòu)建交通物流數(shù)據(jù)倉(cāng)庫(kù)的優(yōu)劣性,通過(guò)利用Ha-doop集群技術(shù)在海量異構(gòu)數(shù)據(jù)處理性能上的優(yōu)勢(shì),設(shè)計(jì)架構(gòu)完成了交通物流信息的數(shù)據(jù)倉(cāng)庫(kù),并利用實(shí)際物流數(shù)據(jù)對(duì)其性能進(jìn)行分析評(píng)測(cè)。實(shí)踐證明,該數(shù)據(jù)倉(cāng)庫(kù)能夠?qū)A拷煌ㄎ锪鲾?shù)據(jù)進(jìn)行分布式存儲(chǔ)、分布式處理、元數(shù)據(jù)管理和備份,具有優(yōu)越的容錯(cuò)性和安全性,任何一個(gè)或幾個(gè)節(jié)點(diǎn)出現(xiàn)故障,都不會(huì)對(duì)整個(gè)系統(tǒng)集數(shù)據(jù)造成較大影響,其綜合性能具有明顯優(yōu)勢(shì)。此外,集群節(jié)點(diǎn)均為普通計(jì)算機(jī),其成本低廉,且易于架構(gòu)實(shí)現(xiàn)。