侯健衛 楊波 李栓林 劉浩熙 魯瑞
【摘要】 針對當前RDBMS、MPP等關系型數據管理系統在處理低價值密度數據過程中的諸多不足,提出了一種基于MPP和Hadoop的海量低價值密度的機構化數據處理方案。該方案通過結合MPP和Hadoop技術解決了目前處理手段 I/O性差的問題,并在很大程度上提高了系統的可擴展性;同時,該方案明顯降低了低價值密度數據的分析成本,具有明顯的經濟意義。實驗結果表明:該方案能夠用于處理海量低價值密度數據,解決目前低價值密度數據操作方案I/O性能低、讀寫響應慢、價格高昂等缺點,達到設計要求。
【關鍵字】 大數據 低價值數據 Hadoop MPP
隨著互聯網時代的到來,數據量正以幾何級數高速增長[1]。這些新增數據具有明顯的低價值密度的特點,主要表現為數據總量大、有價值數據含量少[2]。低價值密度數據分為結構化數據和非結構、半結構化數據,其中非結構化、半結構化低價值密度數據可以采用Hadoop技術體系Hbase等進行處理,而結構化低價值密度結構化數據大多采用目前主流RDMBS、MPP等關系型數據庫進行處理[3]。
目前基于MPP(大規模并行處理技術)數據庫技術在一定程度上可以彌補傳統關系型數據庫當中的不足,但是面對海量、低價值密度數據時,MPP數據庫系統主要表現在優化系統性能。MPP數據庫的不足之處主要表現在:1)對于的低價值密度數據,MPP體系的價格成本依然較高;2)雖然MPP體系可以提供較快的查詢處理速度,但是在高吞吐量時依然存在較多的問題。3)在數據量非常大或者大規模寫入操作時,MPP數據庫延時嚴重;4)MPP數據庫適合應用于OLTP等事務性工作,無法有效的支持大規模非結構化數據的讀寫操作。
針對上述不足之處,本文結合MPP數據庫特點和當前流行的大數據體系Hadoop的良好的擴展性、I/O性能的特點,設計并實現了一種低價值密度結構化數據聯合處理方法。
一、實現方案
1.1總體思想
結合share-Nothing工作模式的MPP數據庫系統和Hadoop技術體系的各自優點,實現低價值密度結構化數據的協同處理,以期達到提高數據處理效率、降低數據處理成本的效果。
系統整體設計目標如下:1)利用Hadoop、MPP技術體系優點,實現適合于低價值密度結構化數據的數據處理手段;2)針對OLTP事務處理和數據挖掘分析的要求,根據不同應用場景提出不同的低價值密度數據處理方法;3)充分利用Hadoop體系中HDFS和Hive的技術特點,提高系統處理高并發、大規模數據吞吐情況下的處理能力;4)在海量、低價值密度數據的情況下,實現更加經濟、更加符合數據處理特點的新的技術體系和新的處理方法。
系統整體設計思路如下:1)采用MPP數據庫處理小規模查詢類的低價值密度數據操作;2)采用Hadoop體系處理對低價值密度數據分析類的、大規模、高吞吐量、寫多讀的操作。
1.2系統結構
在系統結構上,基于MPP和Hadoop技術的低價值密度結構化數據聯合處理方法具體結構具體包括:應用系統、混合引擎、MPP客戶端/HDFS客戶端/Hive、MPP數據庫系統/HDFS分布式文件系統、聯合數據加載器等。系統整體結構如圖1所示。
MPP數據庫基于高性能計算的Share-Nothing架構實現,節點主要采用SMP技術,多個SMP節點采用高速網絡互聯,其具體包括主機節點和數據節點,主機階段負責管理,而數據節點負責數據處理。
混合前端引擎、聯合數據加載處理器是為實現本方法提出的兩個新的軟件系統,混合前端引擎主要負責對各種應用進行調度處理,而聯合數據加載處理器主要負責加載、提取各種原有的大規模低價值密度數據。混合前端引擎其分別通過MPP Client客戶端、HDFS Client客戶端,以及Hive系統的HQL語言分別和MPP數據庫系統、HDFS分布式文件系統、Hive系統接口。
1.3聯合數據加載處理器
聯合數據加載處理器的核心功能就是從傳統的RDBMS數據庫、FTP、文件服務器中加載數據到MPP數據庫系統、HDFS分布式文件系統、Hive數據倉庫。
對于非低密度價值數據,聯合數據加載處理器首先加載其到MPP數據庫,而對于低價值密度數據,聯合數據加載處理器需要分析其具體類型:1)如果是大規模、分析型,那么就需要加載到HDFS分布式文件系統,其通過調用HDFS客戶端系統進行處理,同時和Hive系統連接,實現元數據在Hive中的處理;2)如果不是大規模的數據,但是是分析型的數據,如果是文件類型的,其也直接加載到HDFS分布式文件系統,同時,如果其數據類型標志為讀操作,則也部署到HDFS分布式文件系統中;3)其他類型數據加載到MPP數據庫系統中。
聯合數據加載器僅僅大概、粗粒度的處理低價值密度數據,其無法實現精細粒度的數據加載和轉換處理。
1.4混合前端引擎
混合前端引擎一方面接口連接所有的ODBC、JDBC等應用系統,另一方面接口連接MPP客戶端、HDFS客戶端、Hive系統接口等,其本質上是各種SQL應用的調度處理管理程序。其核心功能就是對各種SQL應用進行分類處理:1)查詢類的、小規模的、多寫多讀的、實時的低價值密度數據和MPP數據庫接口;2)分析類的、大規模的、一寫多讀的、高延遲的低價值密度數據和HDFS/Hive接口。
為了實現低價值密度結構化數據的合理部署和管理,混合前端引擎需要實現三類功能:1)SQL-數據調度器;2)數據類型判斷管理算法;3)Hash數據管理表。為了實現各種SQL數據的調度管理,在具體實現中基于HASH表實現了低價值密度數據的管理表,該管理表一方面在數據加載的時候進行寫入,而且還在具體應用處理數據時候修改,其相當于數據庫的元數據、HDFS系統的元數據。
二、實際測試
為了驗證方案的可行性,通過模擬實際生產環境對該方案進行了測試,主要對系統的I/O性能進行測試。
2.1測試環境
為了確保測試結果的準確性,選用主流x86服務器作為硬件環境。其中,對于Hive相關的存儲節點,重疊部署在HDFS 的DataNode服務器上面。
2.2測試過程
為了確保測試結果的準確性,采用控制變量的方式進行了三種測試,分別是:1)單一基于MPP數據庫系統的低價值密度結構數據處理方案;2)單一基于HDFS+Hive數據庫系統的低價值密度結構數據處理方案;3)本文所涉及的基于MPP和Hadoop的低價值密度結構數據聯合處理方案。同時,模擬四類操作:1)小規模數據查詢類操作;2)大規模數據查詢類操作;2)小規模數據分析類操作;3)大規模數據分析類操作。
2.3測試結果
對系統的最大并發數測試結果如圖2所示。
從圖2可以看出,在初始狀況下,MPP、Hive以及MPP與Hadoop結合方式的系統響應時間幾乎相同;隨著請求并發量的增大,響應時間都出現了上漲趨勢,但是MPP與Hadoop結合方式的系統響應時間增長速度要明顯小于其它二者。這說明MPP與Hadoop結合方式的系統具有更好的應對請求熱點等用戶操作高并發的情況。
三、結論
本文基于MPP和Hadoop技術設計并實現了低價值密度結構數據聯合處理方法的設計與實現方案。經過測試分析發現,基于MPP和Hadoop技術的低價值密度結構化數據聯合處理方法適合于低價值密度數據處理,在大規模、高吞吐量數據處理方面具有良好的系統性能,而且有效的降低了系統成本。因此,該方法在大數據時代可以有效地處理大規模、低價值密度、高吞吐量的結構化數據。
由于條件限制,涉及方案只是模擬生產環境下進行了測試,這和實際的企業生產環境仍有很大的差距,這些差距可能會使得測試結果有一定的偏差。因此,在更大規模實際生產環境上進行實際測試將是下一步的研究的主要工作。
樣刊郵寄地址:太原市勝利街兵工南馬路59號
聯系人:魯瑞13935128085
參 考 文 獻
[1]孟小峰,慈祥. 大數據管理:概念、技術與挑戰[J]. 計算機研究與發展,2013,50(1):146-169.
[2]鄔賀銓. 大數據時代的機遇與挑戰[J]. 求是,2013,(4):47-49.
[3]李雪嬌,余建橋,馮靜. 關系型數據庫中不確定性數據的Top-k查詢研究[J]. 計算機應用與軟件,2012,29(4) :186-187.
[4]李書攀. 一種關系型數據庫自動劃分方法的設計[J]. 計算機光盤軟件與應用,2014,17(9):55-56.
[5]董紀英,燕志偉,梁正玉. SQLite、MySQL、PostgreSQL關系型數據庫管理系統比較[J]. 電腦編程技巧與維護,2014,27(14):55-58.