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