張登耀
?
基于Hadoop分布式文件系統(tǒng)的商業(yè)銀行大數(shù)據(jù)分析
張登耀
東北財經(jīng)大學(xué) 金融學(xué)院, 遼寧 大連 116025
針對當(dāng)前Hadoop分布式文件系統(tǒng)數(shù)據(jù)分析時存在的數(shù)據(jù)讀取時間長,數(shù)據(jù)本地化率低等問題,本文提出了一種基于Hadoop分布式文件系統(tǒng)的商業(yè)銀行大數(shù)據(jù)分析方法。首先對Hadoop分布式文件系統(tǒng)的工作原理和流程進(jìn)行分析,找到引起不足的原因,然后根據(jù)商業(yè)銀行大數(shù)據(jù)的特點(diǎn),對Hadoop分布式文件系統(tǒng)的數(shù)據(jù)副本數(shù)量和數(shù)據(jù)分布位置進(jìn)行相應(yīng)的改進(jìn),最后通過仿真模擬實驗對數(shù)據(jù)讀取速度、本地化率、磁盤負(fù)載等進(jìn)行分析。結(jié)果表明,本方法可以有效減少數(shù)據(jù)讀取時間、提升數(shù)據(jù)本地化率并均衡磁盤負(fù)載,整體性能要明顯優(yōu)于對比方法,具有更好的實際應(yīng)用價值。
Hadoop文件; 商業(yè)銀行; 大數(shù)據(jù)
Hadoop分布式文件系統(tǒng)(Hadoop Distributed File System,縮寫為:HDFS,下文同)通過節(jié)點(diǎn)可用空間分布數(shù)據(jù)來確保節(jié)點(diǎn)間的數(shù)據(jù)負(fù)載均衡,同時采用靜態(tài)數(shù)據(jù)副本策略來確保數(shù)據(jù)存儲安全,也就是HDFS的設(shè)計架構(gòu)考慮了數(shù)據(jù)負(fù)載均衡和數(shù)據(jù)存儲安全兩項關(guān)鍵因素[1]。但是,缺乏數(shù)據(jù)處理時對數(shù)據(jù)訪問特點(diǎn)的考慮,導(dǎo)致在提升數(shù)據(jù)讀取性能的時候無法充分利用存儲資源?;诖耍疚耐ㄟ^剖析商業(yè)銀行大數(shù)據(jù)處理過程,深入了解HDFS數(shù)據(jù)讀取特點(diǎn),結(jié)合數(shù)據(jù)訪問頻率以及不同數(shù)據(jù)被同時訪問的可能性,提出兩項優(yōu)化策略即調(diào)整數(shù)據(jù)副本數(shù)量和數(shù)據(jù)分布位置,可以減少Hadoop中讀取數(shù)據(jù)所需的時間、提高數(shù)據(jù)處理時的數(shù)據(jù)本地化率,從而提升數(shù)據(jù)存儲、讀取和處理的性能。在研究中,通過仿真實驗的方式驗證這兩項優(yōu)化策略,分析仿真實驗數(shù)據(jù),明確調(diào)整方案的可行性和有效性。
HDFS的每個集群采用了由一個管理節(jié)點(diǎn)(Name Node)和多個數(shù)據(jù)節(jié)點(diǎn)(Data Node)的主從架構(gòu)模式(圖1)[2]。其中,Name Node具有兩項主要職責(zé),其一是負(fù)責(zé)存儲和管理文件系統(tǒng)的元數(shù)據(jù)信息,包括數(shù)據(jù)塊的存儲位置、命名空間、訪問權(quán)限以及文件和數(shù)據(jù)塊之間的對應(yīng)關(guān)系等信息;其二是負(fù)責(zé)孤兒數(shù)據(jù)塊的收集、數(shù)據(jù)塊存儲位置的調(diào)整等任務(wù)。Data Node也具有兩項主要職責(zé),其一是負(fù)責(zé)存儲和管理數(shù)據(jù),包括執(zhí)行數(shù)據(jù)塊的創(chuàng)建和刪除指令、執(zhí)行數(shù)據(jù)的讀寫請求、來自管理節(jié)點(diǎn)的塊復(fù)制指令等;其二是周期性地向管理節(jié)點(diǎn)反饋狀態(tài)信息。當(dāng)進(jìn)行數(shù)據(jù)操作時, 請求端將相關(guān)請求發(fā)送至Name Node,Name Node通過權(quán)限檢查后選擇合適的Data Node,由Name Node反饋相關(guān)元數(shù)據(jù)信息給請求端,請求端根據(jù)元數(shù)據(jù)相關(guān)信息來執(zhí)行具體的數(shù)據(jù)操作。
為了說明HDFS中的數(shù)據(jù)讀寫流程,本文以一個Map Reduce計算過程中的數(shù)據(jù)讀取來進(jìn)行說明。由于Map Reduce是一種應(yīng)對數(shù)據(jù)密集型問題的編程模型和相應(yīng)運(yùn)行環(huán)境實現(xiàn),已被商業(yè)銀行廣泛用于大數(shù)據(jù)處理領(lǐng)域[3]。典型的Map Reduce過程可以分解為先Map后Reduce的兩個階段,大體過程為:在Map階段從HDFS中讀取數(shù)據(jù),進(jìn)行Map任務(wù)的執(zhí)行,然后將Map產(chǎn)生的中間結(jié)果數(shù)據(jù)寫入到緩存中,等待Reduce任務(wù)讀取中間結(jié)果數(shù)據(jù),再進(jìn)行Reduce任務(wù)的執(zhí)行,執(zhí)行結(jié)果直接返回用戶或?qū)懭氲紿DFS中,即為完成一個Map Reduce過程[4]。一個Map Reduce過程至少應(yīng)包含一次讀取數(shù)據(jù)和一次寫入數(shù)據(jù)操作,其執(zhí)行流程如圖2所示:
圖 2 典型HDFS數(shù)據(jù)讀寫流程圖
商業(yè)銀行會將日常與客戶交互過程中產(chǎn)生的交易日志數(shù)據(jù)、音頻視頻數(shù)據(jù)以及內(nèi)部業(yè)務(wù)處理過長的處理痕跡數(shù)據(jù)、處理結(jié)果數(shù)據(jù)等隨時間點(diǎn)被保留下來,這樣處理機(jī)制及其結(jié)果的特點(diǎn)為多次讀取、極少修改的存儲特點(diǎn)[5]。商業(yè)銀行的數(shù)據(jù)具有明顯的時效性,例如客戶行為數(shù)據(jù)、市場利率數(shù)據(jù)、客戶信用數(shù)據(jù)、宏觀經(jīng)濟(jì)數(shù)據(jù),其價值與產(chǎn)生的時間緊密相關(guān)。Hadoop在設(shè)計的時候,制定的機(jī)制使存儲在HDFS中的數(shù)據(jù)會頻繁被讀取,但是極少被修改,即使數(shù)據(jù)產(chǎn)生之后需要被修改,也不是對其直接修改,而是產(chǎn)生新數(shù)據(jù)。因此,可以將具備讀取頻率高、修改極少的數(shù)據(jù)放置在HDFS中實現(xiàn)歸檔和數(shù)據(jù)分析。
基于上述對商業(yè)銀行大數(shù)據(jù)特點(diǎn)的分析,本文提出對數(shù)據(jù)的副本數(shù)量、數(shù)據(jù)的分布位置進(jìn)行策略調(diào)整,通過比較數(shù)據(jù)訪問熱度值、數(shù)據(jù)訪問相關(guān)性,仿真驗證改進(jìn)后的效果,策略如下:
通過統(tǒng)計不同時間段的數(shù)據(jù)訪問頻率,并針對不同時間段設(shè)置不同的權(quán)重系數(shù),來定義數(shù)據(jù)的訪問熱度值[6]。同時,根據(jù)生產(chǎn)系統(tǒng)整體的可用空間、數(shù)據(jù)修改成本、網(wǎng)絡(luò)開銷等設(shè)置調(diào)整數(shù)據(jù)副本數(shù)量的閾值范圍。在此基礎(chǔ)上,可以不斷地調(diào)整數(shù)據(jù)副本數(shù)量,通過觀察數(shù)據(jù)訪問熱度值所在閾值范圍的變化,達(dá)到最佳效果。
現(xiàn)定義數(shù)據(jù)訪問熱度值,使用H來表示單位數(shù)據(jù)的訪問熱度,H表達(dá)式為:
H=1×F1+2×F2+…+K×F+…+K×F(1)
其中,K表示第個時間段的權(quán)重系數(shù),F表示單位數(shù)據(jù)第個時間段的訪問頻率,表示總計考慮個時間段,單位選取次數(shù)/小時,單位數(shù)據(jù)大小為1個數(shù)據(jù)塊[7]。
在初始狀態(tài)下,每份數(shù)據(jù)默認(rèn)擁有3個副本。隨著數(shù)據(jù)訪問地持續(xù),產(chǎn)生不同的數(shù)據(jù)訪問熱度,可以結(jié)合可用的存儲容量空間,仿真設(shè)置幾個副本閾值,并設(shè)定不同的副本閾值對應(yīng)的副本數(shù)量不同。在仿真讀取過程中,通過觀察數(shù)據(jù)訪問熱度值范圍的變化,動態(tài)地調(diào)整數(shù)據(jù)副本數(shù)量,不斷修正數(shù)據(jù)副本的數(shù)量,以便更好地滿足數(shù)據(jù)訪問的特點(diǎn)[8]。
調(diào)整數(shù)據(jù)副本時,計算每份不含副本數(shù)據(jù)的熱度值,然后根據(jù)數(shù)據(jù)的熱度對比關(guān)系,觸發(fā)一次針對該數(shù)據(jù)的副本調(diào)整策略。
具體方案為根據(jù)不同數(shù)據(jù)被同時訪問的情況來計算其關(guān)聯(lián)關(guān)系,并對不同的時間段賦予不同的權(quán)重系數(shù)[9]。根據(jù)數(shù)據(jù)訪問狀態(tài)、存儲可用空間等設(shè)置調(diào)整數(shù)據(jù)分布位置的閾值范圍。隨著對數(shù)據(jù)訪問的持續(xù)進(jìn)行,根據(jù)關(guān)聯(lián)關(guān)系所在閾值范圍的變化對不同數(shù)據(jù)進(jìn)行整合或拆分操作,完成相應(yīng)的數(shù)據(jù)位置調(diào)整。
現(xiàn)在進(jìn)行數(shù)據(jù)訪問相關(guān)性定義,用R來表示兩個單位數(shù)據(jù)和之間的訪問相關(guān)度,R表達(dá)式為:R=1×E1+…+K×E+…+K×E(2)
其中,K表示第個時間段的權(quán)重系數(shù),E表示數(shù)據(jù)和數(shù)據(jù)第個時間段的訪問相關(guān)度,表示總計考慮個時間段,單位選取為次數(shù)/小時,單位數(shù)據(jù)大小為1個數(shù)據(jù)塊[10]。
在每個將進(jìn)行數(shù)據(jù)副本調(diào)整的時刻,首先按照上述公式計算每份不含副本數(shù)據(jù)與其他不含副本數(shù)據(jù)的一個相關(guān)度值,然后根據(jù)相關(guān)度值排序,進(jìn)行兩個數(shù)據(jù)副本位置的調(diào)整。
在仿真測試過程中,有兩個關(guān)鍵問題,其一是觸發(fā)調(diào)整副本數(shù)量、調(diào)整副本位置的時刻選擇;其二是數(shù)據(jù)副本的數(shù)量控制和數(shù)據(jù)副本位置關(guān)系的控制[11]。
仿真調(diào)整數(shù)據(jù)副本數(shù)量的關(guān)鍵在于數(shù)據(jù)副本的增加。在HDFS中,在Name Node進(jìn)行相關(guān)元數(shù)據(jù)的刪除,即可減少數(shù)據(jù)副本的數(shù)量,而數(shù)據(jù)副本增加相對比較復(fù)雜,不僅涉及Name Node副本數(shù)據(jù)的增加,還涉及數(shù)據(jù)復(fù)制,時間成本相對較高。在本文仿真模擬試驗中,為了減少不必要的開銷,不獨(dú)立觸發(fā)進(jìn)行數(shù)據(jù)副本增加的試驗,而是借用數(shù)據(jù)在處理過程中臨時緩存到其處理節(jié)點(diǎn),從而實現(xiàn)數(shù)據(jù)副本的新增,這種數(shù)據(jù)拷貝方法并沒有增加額外的網(wǎng)絡(luò)開銷。
仿真調(diào)整數(shù)據(jù)副本位置的關(guān)鍵在于數(shù)據(jù)相關(guān)性的判斷。在判定了數(shù)據(jù)相關(guān)度的基礎(chǔ)上,還需要考慮數(shù)據(jù)副本調(diào)整會增加數(shù)據(jù)拷貝相關(guān)的成本。與上述情況類似,在本文中不獨(dú)立觸發(fā)進(jìn)行數(shù)據(jù)副本位置調(diào)整的操作,不會增加額外的網(wǎng)絡(luò)開銷,主要開銷同樣是元數(shù)據(jù)調(diào)整開銷。
仿真測試機(jī)器的基礎(chǔ)環(huán)境為64位CentOS 6.4操作系統(tǒng),軟件版本為Hadoop 2.6.0和JDK 1.8.0。測試參數(shù)設(shè)置為:存儲數(shù)據(jù)總數(shù)為30000份;總存儲空間為90000份;每個節(jié)點(diǎn)可以存儲的數(shù)據(jù)份數(shù)為300份;每份數(shù)據(jù)的副本數(shù)量默認(rèn)為3份;副本數(shù)量最大允許為9份;數(shù)據(jù)訪問發(fā)生的時刻為300個;在一次仿真模擬過程中,每一個數(shù)據(jù)被訪問的總次數(shù)為一個隨機(jī)整數(shù)值,其值屬于[10,1000],每一個數(shù)據(jù)第一次被訪問的起始時刻為一個隨機(jī)整數(shù)值,其值屬于[1,300];每一個數(shù)據(jù)訪問次數(shù)和兩個數(shù)據(jù)同時訪問次數(shù)在其可以訪問時段的概率為,是一個隨機(jī)值的指數(shù)分布,其值屬于[0.1,0.2]。
分析仿真模擬試驗數(shù)據(jù),從為0.1時的指數(shù)分布圖(圖3)可以看出,數(shù)據(jù)在最開始產(chǎn)生時,被訪問或同時訪問的概率較高,隨著時間的持續(xù),數(shù)據(jù)訪問概率逐漸減小。為0.2時的情況與為0.1時的情況類似,訪問概率減速更快,也就是曲線更加陡立。
圖 3 λ=0.1的指數(shù)分布
5.2.1 數(shù)據(jù)副本數(shù)量改進(jìn)仿真實驗結(jié)果在上述環(huán)境下,按照上述參數(shù)設(shè)置,進(jìn)行了100次數(shù)據(jù)副本數(shù)量仿真試驗(圖4),對比數(shù)據(jù)副本改進(jìn)前后的仿真試驗數(shù)據(jù),改進(jìn)之前默認(rèn)為不發(fā)生數(shù)據(jù)副本數(shù)量的增加操作,改進(jìn)后數(shù)據(jù)副本數(shù)量發(fā)生改變的次數(shù)占整體訪問次數(shù)的比例大致位于18.5%~19.0%之間,其均值為18.8%,該數(shù)值表明了Name Node應(yīng)該將18.8%副本保留在本地,提供給后續(xù)訪問,可以節(jié)省各方面的開銷,提高訪問存儲的性能。
圖 4 副本調(diào)整次數(shù)所占比例
注:①橫坐標(biāo)為仿真模擬實驗編號;②縱坐標(biāo)為“發(fā)生副本調(diào)整次數(shù)與數(shù)據(jù)訪問總次數(shù)的比值”。
Note: ①The abscissa is the numbering of the simulation experiment; ②The ordinate is the ratio of the number of times that the number of copies is adjusted to the total number of data accessed.
使用上述參數(shù)設(shè)置,采用默認(rèn)副本數(shù)量為3,同樣進(jìn)行了100次副本數(shù)量改進(jìn)仿真試驗,統(tǒng)計得出改進(jìn)后副本數(shù)量(圖5)。對比數(shù)據(jù)副本改進(jìn)前后的仿真試驗數(shù)據(jù),改進(jìn)之前數(shù)據(jù)副本默認(rèn)為3,改進(jìn)之后數(shù)據(jù)副本增加為7.635~7.675之間,數(shù)據(jù)副本增加了2.5倍,每份數(shù)據(jù)每時刻需滿足的訪問需求個數(shù)相比原來的存儲方法減少40%,這樣可以更好地滿足數(shù)據(jù)讀取的需求。
圖 5 副本數(shù)量變化值
備注:①橫坐標(biāo)為仿真模擬實驗編號;②縱坐標(biāo)為副本數(shù)量變化值。
Note: ① The abscissa is the serial number in the simulation experiment; ② The ordinate is replica number change value.
5.2.2 數(shù)據(jù)副本位置改進(jìn)仿真實驗結(jié)果使用上述參數(shù)設(shè)置,得到的仿真測試結(jié)果顯示,仿真改進(jìn)后的算法相對于原有的算法,數(shù)據(jù)本地化率提升了25.6%,而在20.4%的時刻會發(fā)生數(shù)據(jù)副本位置的調(diào)整操作,該數(shù)值表明了Name Node需要增加更多的開銷(表1)。
表 1 調(diào)整數(shù)據(jù)副本位置的仿真測試數(shù)據(jù)
仿真數(shù)據(jù)表明,仿真改進(jìn)后的方法可以減少數(shù)據(jù)處理時所需讀取的數(shù)據(jù)不在本地的概率,提升了數(shù)據(jù)本地化率,從整體上減少了等待數(shù)據(jù)的時間,降低了存儲數(shù)據(jù)節(jié)點(diǎn)的磁盤負(fù)載等。
通過分析商業(yè)銀行大數(shù)據(jù)訪問的特點(diǎn),深入研究HDFS數(shù)據(jù)存儲機(jī)制、Map Reduce的數(shù)據(jù)處理方法,為HDFS數(shù)據(jù)副本高效利用奠定了理論基礎(chǔ),并提供了一定的技術(shù)支持。結(jié)合對兩者的分析,提出如下數(shù)據(jù)存儲改進(jìn)方案:首先,針對商業(yè)銀行不同的數(shù)據(jù)被訪問頻率不同的特性,可以通過定制不同性能的數(shù)據(jù)存儲設(shè)備,訪問需求不同的數(shù)據(jù)存放在不同性能的存儲設(shè)備上,使得經(jīng)常被訪問的數(shù)據(jù)能夠更快地被訪問,并保證歸檔類數(shù)據(jù)的存儲,充分利用存儲資源以提升性能;其次,根據(jù)商業(yè)銀行基于預(yù)知數(shù)據(jù)相關(guān)性的特點(diǎn),同時利用具有關(guān)聯(lián)關(guān)系的數(shù)據(jù)經(jīng)常被同時訪問的情況,可以通過調(diào)整數(shù)據(jù)副本的存放位置,使得關(guān)聯(lián)數(shù)據(jù)同時被訪問,從而提高數(shù)據(jù)本地化率,優(yōu)化數(shù)據(jù)讀取的性能;最后,利用商業(yè)銀行大數(shù)據(jù)被訪問的概率特性及大數(shù)據(jù)產(chǎn)生的時間具有的相關(guān)性,通過針對最近的數(shù)據(jù)存儲策略進(jìn)行優(yōu)化,提升數(shù)據(jù)讀取的性能。
[1] 信懷義.商業(yè)銀行大數(shù)據(jù)的應(yīng)用現(xiàn)狀與發(fā)展研究[J].中國金融電腦,2016,27(8):26-28
[2] 顧濤.集群Map Reduce環(huán)境中任務(wù)和作業(yè)調(diào)度若干關(guān)鍵問題的研究[D].天津:南開大學(xué),2015
[3] 羅鵬,龔勛.HDFS數(shù)據(jù)存放策略的研究與進(jìn)步[J].計算機(jī)工程與設(shè)計,2014,35(24):1127-1131
[4] 信懷義.基于商業(yè)銀行大數(shù)據(jù)訪問規(guī)律的HDFS副本策略優(yōu)化研究[J].軟件,2015,36(11):74-79
[5] 張艷,蔡光興.基于ARIMA和GRNN模型對人民幣匯率的預(yù)測[J].特區(qū)經(jīng)濟(jì),2017(2):53-55
[6] 林偉偉.一種改進(jìn)的Hadoop數(shù)據(jù)放置策略[J].華南理工大學(xué)學(xué)報:自然科學(xué)版,2012,40(1):152-158
[7] Tom White. Hadoop權(quán)威指南[M].第2版.周敏奇,王曉玲譯.北京:清華大學(xué)出版社,2011:15-73
[8] 王意潔,孫偉東,周松,等.云計算環(huán)境下的分布存儲關(guān)鍵技術(shù)[J].軟件學(xué)報,2012,23(4):962-986
[9] 王習(xí)特,申德榮,于戈,等.Map Reduce集群中最大收益問題的研究[J].計算機(jī)學(xué)報,2015,38(1):109-121
[10] 宮夏屹,李伯虎,柴旭東,等.大數(shù)據(jù)平臺技術(shù)綜述[J].系統(tǒng)仿真學(xué)報,2014,26(3):489-496
[11] 黃山,王波濤,王國仁,等.Map Reduce優(yōu)化技術(shù)綜述[J].計算機(jī)科學(xué)與探索,2013,7(10):865-885
Big Data Analysis of Commercial Banks Based on Hadoop Distributed File System
ZHANG Deng-yao
116025,
In view of the problems of long data reading time and low localization rate of data in the data analysis by Hadoop distributed file system, this paper proposed a large data analysis method for commercial banks based on Hadoop distributed file system. Firstly, the working principle and process of the Hadoop distributed file system were analyzed and the reasons for the shortage were found. Then, according to the characteristics of the big data of the commercial bank, the number of data copies and the data distribution position of the Hadoop distributed file system were improved. Finally, the data reading speed was passed through the simulation simulation experiment. The localization rate, the disk load and so on were analyzed. The results showed that the method could effectively reduce the time of data reading, improve the localization rate of data and balance the load of the disk. The overall performance was better than the contrast method, and it has a better practical application value.
Hadoop file; commercial bank; big data
TP391
A
1000-2324(2018)05-0884-05
10.3969/j.issn.1000-2324.2018.05.033
2017-08-11
2017-10-09
張登耀(1981-),男,博士研究生,主要研究方向為農(nóng)村金融、資本市場. E-mail:717960543@qq.com