◆張建業(yè)
?
從傳統(tǒng)架構(gòu)IOE到Hadoop云平臺的應(yīng)用遷移的實現(xiàn)探討
◆張建業(yè)
(國網(wǎng)新疆電力公司 新疆 830063)
隨著企業(yè)數(shù)據(jù)信息量的增加,大數(shù)據(jù)時代的到來為企業(yè)數(shù)據(jù)信息處理提供多種新型的技術(shù)。以往企業(yè)數(shù)據(jù)處理所用的傳統(tǒng)框架IOE是集IBM小型機(jī)、Oracle數(shù)據(jù)庫以及EMC存儲所組成的大型商用數(shù)據(jù)庫系統(tǒng)。在當(dāng)今該種系統(tǒng)架構(gòu)早已不能滿足企業(yè)數(shù)據(jù)處理需求,存在著較大的數(shù)據(jù)計算、處理、帶寬等方面的問題。Hadoop云平臺的出現(xiàn),為企業(yè)數(shù)據(jù)信息處理提供更好的平臺,能夠?qū)崿F(xiàn)信息高效應(yīng)用?;诖耍疚膹膫鹘y(tǒng)架構(gòu)IOE到Hadoop云平臺的應(yīng)用遷移實現(xiàn)角度進(jìn)行分析。
傳統(tǒng)架構(gòu)IOE;Hadoop云平臺;應(yīng)用遷移;實現(xiàn)探索
在傳統(tǒng)架構(gòu)IOE中,關(guān)注的是單一系統(tǒng)規(guī)模,一旦系統(tǒng)出現(xiàn)問題將會導(dǎo)致系統(tǒng)需要付出成倍的代價來解決系統(tǒng)問題。在數(shù)據(jù)信息高速發(fā)展的當(dāng)今社會中,傳統(tǒng)架構(gòu)IOE存在著較大的不適應(yīng)性。而Hadoop云平臺的出現(xiàn)能夠有效的解決數(shù)據(jù)存儲、計算、網(wǎng)絡(luò)帶寬等問題。借助Hadoop的良好架構(gòu)提升網(wǎng)絡(luò)系統(tǒng)的實際存儲能力等。從整體角度分析,傳統(tǒng)架構(gòu)IOE到Hadoop云平臺應(yīng)用遷移,能夠應(yīng)對未來一段時間內(nèi)數(shù)據(jù)量的增長,為網(wǎng)絡(luò)系統(tǒng)穩(wěn)定運行“排憂解難”。
ETL在IOE傳統(tǒng)框架中常用的工具之一,實現(xiàn)傳統(tǒng)架構(gòu)IOE到Hadoop云平臺的轉(zhuǎn)換需要格外注意ETL工具的功能性遷移。ETL直接決定著數(shù)據(jù)倉庫的構(gòu)建水平,在該倉庫中包含了不同業(yè)務(wù)系統(tǒng)中的分散用戶原始數(shù)據(jù)的提取、清洗等,以及對于用戶數(shù)據(jù)信息的加載和定義等。通常情況下應(yīng)用傳統(tǒng)框架IOE中的ETL進(jìn)行數(shù)據(jù)抽取主要分為兩種形式:PULL和PUSH。PULL的數(shù)據(jù)抽取主要是通過從業(yè)務(wù)系統(tǒng)數(shù)據(jù)源中直接抽取數(shù)據(jù)信息,而PUSH則是源數(shù)據(jù)所在系統(tǒng),將數(shù)據(jù)借助預(yù)先定義的規(guī)則進(jìn)行數(shù)據(jù)信息的提取。在系統(tǒng)工具的幫助下直接生成了接口數(shù)據(jù)表和視圖。
那么在企業(yè)中應(yīng)用ETL工具的方式與數(shù)據(jù)抽取的方式不同。企業(yè)中應(yīng)用的ETL方式主要分為兩種:第一,ETL;第二,ELT。這種數(shù)據(jù)轉(zhuǎn)換工具的實際區(qū)別在于其轉(zhuǎn)換的位置不同。其中ETL的過程主要是從比較分散形式的業(yè)務(wù)系統(tǒng)中獲取數(shù)據(jù)信息。并且在工具中實現(xiàn)數(shù)據(jù)信息轉(zhuǎn)換,最終將轉(zhuǎn)換得到的結(jié)果應(yīng)用到數(shù)據(jù)表中。該種數(shù)據(jù)處理形式中所應(yīng)用的目標(biāo)庫壓力比較小。伴隨著數(shù)據(jù)倉庫實際處理能力的提升,數(shù)據(jù)信息轉(zhuǎn)換工作也可以應(yīng)用到數(shù)據(jù)倉庫中來實現(xiàn)其功能。該種數(shù)據(jù)處理過程實際上就是ELT過程,最為典型的方式為Hadoop云平臺的應(yīng)用[1]。
2.1 平臺介紹
2003年Apache軟件基金會旗下研發(fā)出開源分布式計算平臺——Hadoop,該平臺能夠針對數(shù)據(jù)、帶寬等問題進(jìn)行綜合性的處理,有效的提升網(wǎng)絡(luò)系統(tǒng)的性能。從功能上與傳統(tǒng)架構(gòu)IOE相比,更加具備優(yōu)勢。在該平臺技術(shù)中包含了兩大核心技術(shù),分別為MapReduce和HDFS。其中HDFS為Hadoop整個系統(tǒng)的底層支持,而MapReduce為分布式處理的實際計算框架[2]。
2.2 計算框架
MapReduce技術(shù)是谷歌所提出的一種并行性的計算模型,該模型能夠應(yīng)用于實際的數(shù)據(jù)信息處理以及的參數(shù)演化。同時該種模型以其數(shù)據(jù)信息的并行處理能力為系統(tǒng)提供較為高效的數(shù)據(jù)信息處理方案。該模型的實際應(yīng)用思想主要是從函數(shù)式編程和矢量編程語言中借鑒而來,與計算機(jī)系統(tǒng)中的“分而治之”思想相互融合。Map能夠?qū)⑾到y(tǒng)中比較復(fù)雜的問題分解為相互獨立各不干擾的子問題。當(dāng)在數(shù)據(jù)信息處理系統(tǒng)中輸入關(guān)鍵值時,可以通過合并數(shù)據(jù)信息的方式降低傳輸帶寬壓力[3]。
2.3 HDFS
HDFS與系統(tǒng)中其他的操作文件塊一致,在HDFS中的文件都需要被分割為若干塊進(jìn)行數(shù)據(jù)信息的存儲。在這其中的快就是HDFS文件處理環(huán)節(jié)中的基本邏輯單元。HDFS的應(yīng)用都是為對大文件的設(shè)計需求所進(jìn)行開發(fā)。文件塊的處理具有以下幾個優(yōu)點:(1)當(dāng)文件的總磁盤容量不超過HDFS總量時就可以直接進(jìn)行存儲,并且不會受到單一節(jié)點磁盤容量的限制;(2)抽象塊是設(shè)計能夠有效地簡化存儲子系統(tǒng)管理方式,保障文件塊與描述文件塊的源數(shù)據(jù)信息能夠分開;(3)系統(tǒng)中的容錯力有效的提升[4]。
3.1 關(guān)系型數(shù)據(jù)庫與Hive之間的數(shù)據(jù)遷移
在ETL應(yīng)用遷移設(shè)計當(dāng)中,對于關(guān)系型數(shù)據(jù)庫與Hive之間的數(shù)據(jù)遷移比較關(guān)鍵。在該種關(guān)系數(shù)據(jù)遷移環(huán)節(jié)中,需要借助Sqoop所提供的API來實現(xiàn)。在該種數(shù)據(jù)遷移過程中會因權(quán)限的問題產(chǎn)生數(shù)據(jù)傳導(dǎo)限制,在數(shù)據(jù)導(dǎo)入的過程中設(shè)計了Sever端和Client 端。從Sqoop的導(dǎo)入導(dǎo)出程序分析中能夠發(fā)現(xiàn),在Client端首先進(jìn)行參數(shù)配置文件的讀取,并且進(jìn)行相應(yīng)的參數(shù)驗證,當(dāng)參數(shù)正確的時候,進(jìn)行下一步參數(shù)格式化處理,并且向系統(tǒng)端口中發(fā)出Post請求,注重編碼的設(shè)置。在Server端口中接受Post參數(shù),導(dǎo)入最新的Hadoop配置文件,并且直接調(diào)用Sqoop的RunTool方法。如果參數(shù)驗證失敗,則需要退出。在Sqoop抽取數(shù)據(jù)時啟動MapReduce過程,由于數(shù)據(jù)源自身的特殊性導(dǎo)致其數(shù)據(jù)信息可能會出現(xiàn)傾斜的情況。例如,當(dāng)以“A”開頭的數(shù)據(jù)量是“M”開頭的幾十倍時,就會產(chǎn)生一定的數(shù)據(jù)傾斜[5]。
3.2 服務(wù)器與HDFS之間的數(shù)據(jù)遷移
當(dāng)前,能夠直接應(yīng)用于傳統(tǒng)架構(gòu)向著云平臺中傳輸數(shù)據(jù)遷移的文件大部分為第三方面的開發(fā)包。比較常見的有:Apache FTP Client數(shù)據(jù)傳輸接口。對于該種傳輸文件,Linux ftp命令也能夠?qū)崿F(xiàn)文件的實際傳輸。Hadoop整套的系統(tǒng)中文編碼都是在UTF-8的基礎(chǔ)上,相應(yīng)的數(shù)據(jù)日志文件環(huán)境為GBK編碼。為了使得數(shù)據(jù)傳輸在HDFS上依然能夠?qū)崿F(xiàn),需要對文件進(jìn)行轉(zhuǎn)碼處理[6]。
3.3 遷移設(shè)計
在研究傳統(tǒng)架構(gòu)IOE到Hadoop云平臺的應(yīng)用遷移時,以IBM WebSphere DataStage導(dǎo)出的結(jié)構(gòu)化配置文件和半結(jié)構(gòu)化的ETL函數(shù)式配置文件的轉(zhuǎn)換程序設(shè)計為研究對象,相應(yīng)的遷移規(guī)則按照SQL+TCL進(jìn)行遷移設(shè)計。首先,SQL是一種數(shù)據(jù)庫的查詢語言,該種語言的應(yīng)用執(zhí)行主要是按照語句執(zhí)行,將其實際語句應(yīng)用到TCL腳本語言當(dāng)中。邏輯程序開始時,按照TCL的處理邏輯,將SQL語句抽取出來,然后進(jìn)行數(shù)據(jù)類型以及數(shù)據(jù)語句的替換。接下來對SQL語句進(jìn)行改寫,編寫UDF函數(shù)實現(xiàn)關(guān)系,并且實際數(shù)據(jù)庫函數(shù)功能;當(dāng)HIVE不支持相應(yīng)語句的情況下,對其進(jìn)行同義轉(zhuǎn)換。
綜上所述,分布式計算平臺——Hadoop,該平臺能夠針對數(shù)據(jù)、帶寬等問題進(jìn)行綜合性的處理,有效的提升網(wǎng)絡(luò)系統(tǒng)的性能。從功能上與傳統(tǒng)架構(gòu)IOE相比,更加具備優(yōu)勢。ETL為傳統(tǒng)架構(gòu)IOE的關(guān)鍵工具,在對其向Hadoop云平臺進(jìn)行遷移研究中,可以通過關(guān)系型數(shù)據(jù)庫與Hive之間的數(shù)據(jù)遷移、服務(wù)器與HDFS之間的數(shù)據(jù)遷移等進(jìn)行遷移設(shè)計。
[1]劉長亮.從傳統(tǒng)架構(gòu)IOE到Hadoop云平臺的應(yīng)用遷移研究與實現(xiàn)[D].北京郵電大學(xué),2015.
[2]王華.基于YARN的數(shù)據(jù)挖掘系統(tǒng)的設(shè)計與實現(xiàn)[D].北京郵電大學(xué),2015.
[3]李青云.基于HBase的應(yīng)用平臺的研究與實現(xiàn)[D].北京郵電大學(xué),2015.
[4]劉珂.基于Hadoop平臺的大數(shù)據(jù)遷移與查詢方法研究及應(yīng)用[D].武漢理工大學(xué),2014.
[5]郭雷風(fēng).農(nóng)業(yè)科研云原型系統(tǒng)設(shè)計與應(yīng)用理論研究[D].中國農(nóng)業(yè)科學(xué)院,2011.
[6]張曉航.大數(shù)據(jù)時代電信運營商IT架構(gòu)的轉(zhuǎn)型與演進(jìn)方案探討[J].移動通信,2014.