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