趙繼新



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