999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Hadoop平臺的電信大數(shù)據(jù)入庫及查詢性能優(yōu)化研究

2014-08-08 11:17:43陳娜張金娟劉智瓊徐歆壹
移動通信 2014年7期
關鍵詞:優(yōu)化

陳娜+張金娟+劉智瓊+徐歆壹

【摘要】隨著移動互聯(lián)網(wǎng)的快速發(fā)展,電信運營商內部各種IT系統(tǒng)中的數(shù)據(jù)出現(xiàn)了“大數(shù)據(jù)”的特征,既有的技術架構和路線已無法高效處理如此海量的數(shù)據(jù)。針對流量經(jīng)營大數(shù)據(jù)管理和大數(shù)據(jù)服務中海量DPI數(shù)據(jù)的數(shù)據(jù)入庫和數(shù)據(jù)查詢場景,提出了一種基于Hadoop的分布式數(shù)據(jù)服務架構,并設計出在該架構下的數(shù)據(jù)入庫和查詢性能的優(yōu)化算法,通過模擬數(shù)據(jù)的實驗對性能優(yōu)化算法進行了驗證。

【關鍵詞】大數(shù)據(jù)HadoopHBase性能優(yōu)化

中圖分類號:TP39文獻標識碼:A文章編號:1006-1010(2014)-07-0058-06

1 引言

隨著3G網(wǎng)絡的成熟和智能終端的普及,移動互聯(lián)網(wǎng)上的數(shù)據(jù)呈現(xiàn)爆炸式的增長,電信運營商為適應移動互聯(lián)網(wǎng)時代激烈的競爭,也提出了角色轉型的戰(zhàn)略,不斷推出各種新業(yè)務和新應用,引導用戶的行為模式從傳統(tǒng)的“語音+短信+增值業(yè)務”的模式轉變?yōu)椤罢Z音+應用+流量”的模式。各種新業(yè)務和新應用層出不窮,趨向多元化,這使得電信運營商內部各種IT系統(tǒng)中的數(shù)據(jù)也出現(xiàn)了大數(shù)據(jù)的特征,一是數(shù)據(jù)類型繁多;二是數(shù)據(jù)價值分散;三是處理速度快,時效性要求高。既有的技術架構和路線,已經(jīng)無法高效處理如此海量的數(shù)據(jù),例如DPI數(shù)據(jù)。

近年來,大數(shù)據(jù)處理的技術架構涌現(xiàn)出了眾多新技術,其中由Apache基金會開發(fā)的Hadoop開源架構應用最廣泛,在電信企業(yè)內部也已有部分IT系統(tǒng)在嘗試使用Hadoop架構。本文針對海量DPI數(shù)據(jù)的數(shù)據(jù)入庫和數(shù)據(jù)查詢場景,提出一種基于Hadoop的分布式數(shù)據(jù)服務架構,同時,設計出在該架構下的數(shù)據(jù)入庫和查詢性能的優(yōu)化算法,并通過模擬數(shù)據(jù)的實驗對性能優(yōu)化算法進行了驗證。

2 系統(tǒng)功能架構設計

在功能架構上,本系統(tǒng)采用“三層結構”的設計思想,應用系統(tǒng)在邏輯上按“數(shù)據(jù)服務層、業(yè)務處理層和接入層”三層結構設計。將接入層獨立出來使得系統(tǒng)的訪問和使用更靈活方便,易于實現(xiàn)個性化和客戶化;將業(yè)務處理層和數(shù)據(jù)服務層分開可以屏蔽業(yè)務數(shù)據(jù)的存儲、組織和訪問的細節(jié),實現(xiàn)業(yè)務數(shù)據(jù)的充分共享,從而實現(xiàn)橫向組合。系統(tǒng)功能架構如圖1所示。

(1)數(shù)據(jù)服務層

數(shù)據(jù)服務層為整個系統(tǒng)提供分布式的數(shù)據(jù)服務,其中包括分布式文件系統(tǒng)HDFS、分布式數(shù)據(jù)庫HBase、分布式協(xié)調器Zookeeper和業(yè)務實例化部分。

(2)業(yè)務處理層

業(yè)務處理層構建于數(shù)據(jù)服務層之上,封裝了整個系統(tǒng)的核心業(yè)務處理邏輯。其中包括接口服務與查詢管理、數(shù)據(jù)ETL、索引定制、數(shù)據(jù)服務、系統(tǒng)管理功能。

(3)接入層

接入層實現(xiàn)本系統(tǒng)和外部系統(tǒng)的接口,其中包括輸入接口和輸出接口。本系統(tǒng)輸入接口采用文件接口,輸出接口采用Web Service消息接口。

3 驗證數(shù)據(jù)和實驗環(huán)境描述

實驗選擇的驗證數(shù)據(jù)是流量經(jīng)營DPI數(shù)據(jù),DPI數(shù)據(jù)是基于DPI技術獲取的TCP/IP應用層數(shù)據(jù),基于此能夠對數(shù)據(jù)內容進行分析,因此DPI數(shù)據(jù)在流量經(jīng)營業(yè)務背景下具有很重要的意義。

(1)數(shù)據(jù)特性

實驗選擇流量經(jīng)營DPI數(shù)據(jù)的數(shù)據(jù)特性如表1所示:

表1DPI數(shù)據(jù)的數(shù)據(jù)特性

業(yè)務類型 文件編碼方式 原始記錄字段數(shù) 需入庫的記錄字段數(shù) 需入庫記錄數(shù)/億

HTTP業(yè)務 ASCII 65 14 25

WAP業(yè)務 ASCII 40 14 25

(2)驗證方法和評估指標

實驗主要驗證50億DPI數(shù)據(jù)的入庫、查詢性能和整個系統(tǒng)的高可用性,具體的驗證方法和評估指標如表2所示:

表2評估指標

評估點 評估指標

50億數(shù)據(jù)的入庫性能 入庫總耗時(LTC)、每秒入庫記錄數(shù)(RNPS)

50億數(shù)據(jù)的查詢性能 平均查詢響應時長(ATRT)、平均事務處理能力(TPS)

(3)硬件配置

實驗的主機環(huán)境為6臺DL380 Gen8,CPU為E5-2630*1(12核),內存16G,聯(lián)機磁盤各300GB,構建分布式文件系統(tǒng)的存儲各2T;實驗網(wǎng)絡帶寬采用千兆以太網(wǎng)絡。

4 入庫性能優(yōu)化

入庫性能相關的因素主要包括Region分裂率、CPU使用率、磁盤I/O使用率、網(wǎng)絡I/O使用率、HBase內核參數(shù)優(yōu)化度和入庫應用程序優(yōu)化度。通過深入研究,本文提出入庫的極限性能測評算法如下:

(1)

其中,WIO是單臺機器的I/O帶寬,單位為kB/s;Scdr是要入庫的單條話單的大小,單位是kB;C1是HDFS文件系統(tǒng)保留的副本系數(shù);C2是整個集群的機器數(shù)。R2和R1代表性能測試結束和開始時的Htable Region個數(shù),當R2大于R1時說明有Region分裂產生,最理想的性能值是R2=R1,表示沒有Region發(fā)生過分裂。指的是集群所有服務器的平均CPU使用率,這里取分段值:

當CPU使用率平均值≥80%時,=1;當60%≤CPU使用率平均值<80%時,=0.7;當CPU使用率平均值<60%時,=0;指集群所有服務器的平均I/O使用率,取值規(guī)則和相同;指集群所有服務器的平均網(wǎng)絡帶寬使用率,取值規(guī)則和相同;λ1表示HBase內核參數(shù)優(yōu)化度和入庫應用程序優(yōu)化度,此值越小說明平臺和應用程序越優(yōu)化,取值范圍為[0,1]。當其為0時則達到理論的最優(yōu)程度。

根據(jù)實驗環(huán)境,對K系列參數(shù)做如下設置:k1為Region分裂系數(shù),在DL380 Gen8集群環(huán)境下為常數(shù)130;k2為CPU影響系數(shù),在DL380 Gen8集群環(huán)境下為常數(shù)50 000;k3為磁盤I/O影響系數(shù),在DL380 Gen8集群環(huán)境下為常數(shù)60 000;k4為網(wǎng)絡影響系數(shù),在千兆以太網(wǎng)環(huán)境下為常數(shù)60 000;k5為軟系數(shù),表示軟件層面的優(yōu)化系數(shù),該值為常數(shù)120 000。當HBase的內核參數(shù)未做任何優(yōu)化時λ1的經(jīng)驗值為0.85左右,當HBase內核參數(shù)和應用做下文的10項優(yōu)化后,λ1的經(jīng)驗值為0.1。

4.1HBase內核參數(shù)優(yōu)化

HBase內核參數(shù)的優(yōu)化是對入庫極限性能測評算法中因子λ1的優(yōu)化,主要包括以下5個方面:

(1)hbase.hregion.max.filesize的設置

HBase中hfile的默認最大值(hbase.hregion.max.filesize)是256MB,hbase.hregion.max.filesize不宜過大或過小[1]。對于流量經(jīng)營DPI離線應用,調整為128MB會更加合適一些。

(2)hbase.regionserver.handler.count的設置

RegionServer端開啟的RPC監(jiān)聽器實例個數(shù),也即RegionServer能夠處理的I/O請求線程數(shù),默認是10。因流量經(jīng)營DPI數(shù)據(jù)為多線程并發(fā)入庫,故調整該值到50。

(3)hbase.hregion.memstore.block.multiplier設置

這個參數(shù)的作用是當memstore的大小增至超過hbase.hregion.memstore.flush.size的2倍時,block所有請求,遏制風險進一步擴大,該參數(shù)的默認值是2。因流量經(jīng)營DPI數(shù)據(jù)寫操作的量非常大,故調整該值為3。

(4)hbase.hstore.blockingStoreFiles設置

block寫請求會嚴重影響當前RegionServer的響應時間,但過多的storefile也會影響讀性能[2]。為了獲取較平滑的響應時間,流量經(jīng)營DPI數(shù)據(jù)入庫設置該值為無限大。

endprint

(5)hfile.block.cache.size設置

storefile的讀緩存占用Heap的大小百分比為20%,該值直接影響數(shù)據(jù)讀的性能。流量經(jīng)營DPI數(shù)據(jù)主要是提供數(shù)據(jù)的查詢服務,為提高讀數(shù)據(jù)的性能,設置該值為0.4。

4.2預分Region數(shù)量

預分Region數(shù)量是對入庫極限性能測評算法中因子(R2-R1)部分的優(yōu)化。為規(guī)避Hregion分裂導致的額外資源耗費對系統(tǒng)性能的影響,根據(jù)需要入庫的數(shù)據(jù)量大小提前預分好所有的Region,可以提高系統(tǒng)的總體性能。

4.3使用Snappy壓縮算法

使用Snappy壓縮算法對DPI的入庫數(shù)據(jù)進行壓縮是對入庫極限性能測評算法中因子、和的優(yōu)化。入庫前文件總大小為509GB,入庫后數(shù)據(jù)保留3份,HDFS文件系統(tǒng)共使用269.79G,相對壓縮比為0.53。若按照單條DPI數(shù)據(jù)的絕對壓縮率計算,壓縮率可以達到15%左右。使用Snappy壓縮算法后,大幅降低了系統(tǒng)總體的I/O吞吐量,進而也大幅提高了入庫的性能。

4.4寫表操作的性能優(yōu)化

寫表操作的性能優(yōu)化是對入庫極限性能測評算法中因子λ1的優(yōu)化,主要包括以下5個方面:

(1)Auto Flush設置

通過調用HTable.setAutoFlush(false)方法可以將HTable寫客戶端的自動flush關閉,這樣可以批量寫入數(shù)據(jù)到HBase,而不是有一條put就執(zhí)行一次更新,只有當put填滿客戶端寫緩存時,才實際向HBase服務端發(fā)起寫請求[3]。默認情況下auto flush是開啟的。

(2)Write Buffer設置

通過調用HTable.setWriteBufferSize(writeBufferSize)方法可以設置HTable客戶端的寫buffer大小,如果新設置的buffer小于當前寫buffer中的數(shù)據(jù)時,buffer將會被flush到服務端。其中,writeBufferSize的單位是byte,可以根據(jù)實際寫入數(shù)據(jù)量的多少來設置該值[3]。

(3)WAL Flag設置

在HBase中,客戶端向集群中的RegionServer提交數(shù)據(jù)時,首先會先寫WAL日志,只有當WAL日志寫成功后,再接著寫MemStore,然后客戶端被通知提交數(shù)據(jù)成功;如果寫WAL日志失敗,客戶端則被通知提交失敗。這樣可以做到RegionServer宕機后的數(shù)據(jù)恢復。因此,對于相對不太重要的數(shù)據(jù),可以在Put/Delete操作時,通過調用Put.setWriteToWAL(false)或Delete.setWriteToWAL(false)函數(shù),放棄寫WAL日志,從而提高數(shù)據(jù)寫入的性能[4]。

(4)批量寫

通過調用HTable.put(Put)方法可以將一個指定的row key記錄寫入HBase,同樣HBase提供了另一個方法:通過調用HTable.put(List)方法可以將指定的row key列表,批量寫入多行記錄。這樣做的好處是批量執(zhí)行,只需要一次網(wǎng)絡I/O開銷,這對于對數(shù)據(jù)實時性要求高、網(wǎng)絡傳輸RTT高的情景,可帶來明顯的性能提升[5]。

(5)多線程并發(fā)寫

在客戶端開啟多個HTable寫線程,每個寫線程負責一個HTable對象的flush操作,這樣結合定時flush和寫buffer(writeBufferSize),既能保證在數(shù)據(jù)量小的時候,數(shù)據(jù)可以在較短時間內被flush(如1s內),同時又能保證在數(shù)據(jù)量大的時候,寫buffer一滿就及時進行flush[6]。

4.5入庫性能結果對比分析

通過以上優(yōu)化,入庫50億數(shù)據(jù)優(yōu)化前后最終測試結果對比如表3所示:

表3數(shù)據(jù)優(yōu)化前后入庫性能結果對比

記錄數(shù)/億 優(yōu)化前LTC 優(yōu)化前RNPS/(萬條·s-1) 優(yōu)化后LTC 優(yōu)化后RNPS/(萬條·s-1)

50 11小時46分 11.8 5小時20秒 28.1

根據(jù)表3數(shù)據(jù)可得優(yōu)化前的集群入庫效率為11.8萬條/s,優(yōu)化后的集群入庫效率為28.1萬條/s。再結合入庫的極限性能測評算法對以上結果進行分析:

(1)優(yōu)化前結果分析

結論一:優(yōu)化前實際入庫速率11.8萬條/s遠小于極限性能=29.2萬條/s,優(yōu)化前的入庫性能只達到極限性能的40.4%,總體上還有很大的優(yōu)化空間;

結論二:Region數(shù)量分裂了244次,磁盤I/O出現(xiàn)瓶頸,需控制Region的分裂,降低磁盤的總體I/O。

結論三:根據(jù)以上性能測評算法計算出的優(yōu)化前入庫速率為11.6萬條/s,與實際測試結果11.8萬條/s近似。

(2)優(yōu)化后結果分析

結論一:優(yōu)化后實際入庫速率28.1萬條/s接近極限性能29.2萬條/s,優(yōu)化后的入庫性能達到極限入庫性能的96.2%;

結論二:優(yōu)化后的Region未發(fā)生分裂,磁盤I/O、網(wǎng)絡I/O、CPU使用率均未出現(xiàn)瓶頸;

結論三:根據(jù)以上性能測評算法計算出的優(yōu)化后入庫速率為28萬條/s,與實際測試結果28.1萬條/s近似。

5 查詢性能優(yōu)化

查詢性能相關的因素包括:查詢服務中間件吞吐量、查詢尋址次數(shù)、查詢集群規(guī)模、查詢應用優(yōu)化程度。實驗選擇的查詢中間件為tomcat。通過驗證,單臺DL380 Gen8機器讀取內存的查詢性能為300;用戶并發(fā)查詢ATRT為0.18s,TPS為1 429TPS,以上兩值不同的硬件平臺取值不一樣。通過深入研究,本文提出查詢的極限性能測評算法如下:

(2)

(3)

其中,表示查詢的平均事務響應時間,R1表示做一次查詢HBase的路由尋址次數(shù),該值與應用設計有關,不同的設計最終路由尋址次數(shù)可能不一樣;λ1表示查詢應用的優(yōu)化度,取值范圍為[0,1],當該值為0時說明查詢應用已經(jīng)達到最優(yōu)程度,根據(jù)經(jīng)驗當應用未做任何優(yōu)化時λ1的經(jīng)驗值為0.9,當應用做了下文中的6項優(yōu)化后,λ1的經(jīng)驗值為0.1。

表示查詢的平均事務處理能力,R1、λ1、C1的含義與計算公式中的因子含義相同。k1表示路由系數(shù),在DL380 Gen8集群環(huán)境下為常數(shù)65;k2表示應用優(yōu)化系數(shù),在DL380 Gen8集群環(huán)境下為常數(shù)600。

5.1RowKey的設計

RowKey的設計是對查詢性能評估算法中R1因子的優(yōu)化。HTable的RowKey是用來檢索記錄的主鍵,訪問HBase Table的方式只有三種,分別是通過單個RowKey訪問、通過RowKey的range訪問、全表掃描。因而RowKey的設計就與查詢條件緊密相關,RowKey的設計好壞也直接影響到查詢的性能和查詢條件的靈活性。

流量經(jīng)營DPI數(shù)據(jù)的查詢條件是根據(jù)用戶號碼和時間范圍來檢索該號碼在該時間范圍內的所有記錄,那么流量經(jīng)營DPI數(shù)據(jù)的Htable RowKey設計為:手機號碼MDN(15位)+開始時間Start Time(14位)+協(xié)議類型ProtocolID(2位)+時長DURATION(9位)。因以上字段的數(shù)據(jù)在檢索和排序時都是按數(shù)字序來排序的,因而所有字段都按固定長度拼接,長度不足則左補0。按照以上設計,當按照手機號碼和開始時間查詢記錄時,可以直接通過-ROOT-表尋址、.META.表尋址兩次即可找到本次查詢所對應的Region。

5.2負載均衡設計

負載均衡設計是對查詢性能評估算法中C1因子的優(yōu)化。查詢服務的吞吐量易受限于單臺PCServer的處理能力,經(jīng)過試驗,DL380 Gen8的查詢平均時延不超過0.05s的情況下,最大允許的并發(fā)查詢用戶數(shù)為120個。那么在PCServer集群環(huán)境下查詢服務也須使用分布式結構,且各主機對查詢請求負載均衡[7]。按照以上依據(jù),采用Nginx+Tomcat的負載均衡架構,將查詢消息通過Nginx負載均衡分發(fā)到4臺主機上。按照該負載均衡的設計,經(jīng)過試驗,4臺主機在查詢時延不超過0.05s的情況下,最大允許的并發(fā)用戶數(shù)達到450個。

5.3查詢應用的優(yōu)化

讀表操作是對查詢性能評估算法中因子λ1的優(yōu)化,具體優(yōu)化點包括以下6點:

(1)多HTable并發(fā)讀

創(chuàng)建多個HTable客戶端用于讀操作,提高讀數(shù)據(jù)的吞吐量。

(2)Scanner Caching

通過調用HTable.setScannerCaching(int scannerCaching)可以設置HBase scanner一次從服務端抓取的數(shù)據(jù)條數(shù),默認情況下一次一條。通過將此值設置成一個合理的值,可以減少scan過程中next()的時間開銷[7]。

(3)Scan Attribute Selection

scan時指定需要的Column Family,可以減少網(wǎng)絡傳輸數(shù)據(jù)量,否則默認scan操作會返回整行所有Column Family的數(shù)據(jù)[8]。

(4)Close ResultScanner

通過scan取完數(shù)據(jù)后,關閉ResultScanner,否則RegionServer可能會出現(xiàn)資源爭用的問題。

(5)批量讀

通過調用HTable.get(Get)方法可以根據(jù)一個指定的RowKey獲取一行記錄,同樣HBase提供了另一個方法:通過調用HTable.get(List)方法可以根據(jù)一個指定的RowKey列表,批量獲取多行記錄,只需要一次網(wǎng)絡I/O開銷,對于對數(shù)據(jù)實時性要求高而且網(wǎng)絡傳輸RTT高的情景,可帶來明顯的性能提升[9]。

(6)緩存查詢結果

對于頻繁查詢HBase的應用場景,可以考慮在應用程序中做緩存,當有新的查詢請求時,首先在緩存中查找,如果存在則直接返回,不再查詢HBase;否則對HBase發(fā)起讀請求查詢,然后在應用程序中將查詢結果緩存起來。至于緩存的替換策略,可以考慮LRU等常用的策略[9]。

5.4查詢性能結果對比分析

通過以上優(yōu)化,查詢50億數(shù)據(jù)優(yōu)化前后最終測試結果如表4所示:

表4數(shù)據(jù)優(yōu)化前后查詢性能結果對比

查詢

方法 虛擬用戶數(shù)/個 優(yōu)化前ATRT/s 優(yōu)化前TPS 優(yōu)化后ATRT/s 優(yōu)化后TPS

查50億 300 0.785 219 0.039 4 626

結合查詢的極限性能測評算法對以上結果進行分析:

(1)優(yōu)化前

結論一:每次查詢的尋址次數(shù)為4次,比理論最小尋址次數(shù)多了2次,可優(yōu)化HTable表設計和RowKey設計,減少查詢的尋址次數(shù);

結論二:查詢的應用只部署在1臺機器上,需使用負載均衡的分布式查詢,發(fā)揮所有機器的作用;

結論三:根據(jù)以上性能測評算法計算出的和為0.785與224,與實際測試結果0.785和219近似。

(2)優(yōu)化后

結論一:每次查詢的尋址次數(shù)為2次,已經(jīng)達到最優(yōu)的查詢尋址路徑;

結論二:查詢的應用使用是分布在6臺機器上的,充分發(fā)揮了每臺機器的作用;

結論三:根據(jù)以上性能測評算法計算出的和為0.04和4 614,與實際測試結果0.039與4 626近似。

6 結論

本文論述了電信企業(yè)在流量經(jīng)營背景下,基于Hadoop平臺的一種新的數(shù)據(jù)服務架構。基于Hadoop平臺搭建的分布式數(shù)據(jù)服務系統(tǒng)可以提供海量數(shù)據(jù)的高速入庫與查詢性能。同時本文通過真實實驗數(shù)據(jù),總結了在該架構下性能優(yōu)化的一般方案和性能計算模型,通過這些性能優(yōu)化方案可以將數(shù)據(jù)服務的質量提升到新的高度。

參考文獻:

[1] 蔡斌,陳湘萍. Hadoop技術內幕:深入解析Hadoop Common和HDFS架構設計與實現(xiàn)原理[M]. 北京: 機械工業(yè)出版社, 2013.

[2] 董西成. Hadoop技術內幕:深入解析MapReduce架構設計與實現(xiàn)原理[M]. 北京: 機械工業(yè)出版社, 2013.

[3] Lars George. HBase: The Definitive Guide[M]. O'Reilly, 2012.

[4] 陳能技,郭柏雅. 性能測試診斷分析與優(yōu)化[M]. 北京: 電子工業(yè)出版社, 2012.

[5] Apache. HUG8: January HBase User Group at StumbleUpon[EB/OL]. (2010-07-27). http://www.meetup.com/hbaseusergroup/events/12241393/.

[6] Apache. The Apache HBaseTM Reference Guide[EB/OL]. (2013-06-11). http://hbase.apache.org/book.html#configuration.

[7] 林偉偉. 一種改進的Hadoop數(shù)據(jù)放置策略[J]. 華南理工大學學報:自然科學版, 2012(1): 36-39.

[8] 張榆,馬友忠,孟小峰. 一種基于HBase的高效空間關鍵字查詢策略[J]. 小型微型計算機系統(tǒng), 2012(10): 72-74.

[9] European Conference, ServiceWave 2011 4th. Enhancing Query Support in HBase via an Extended Coprocessors Framework[C]. 2011.★

作者簡介

陳娜:高級工程師,碩士畢業(yè)于華中科技大學,現(xiàn)任職于中國電信股份有限公司廣州研究院,主要從事電信IT支撐系統(tǒng)的相關研究工作。

張金娟:工程師,碩士畢業(yè)于華南理工大學通信與信息系統(tǒng)專業(yè),現(xiàn)任職于中國電信股份有限公司廣州研究院,主要從事IT系統(tǒng)性能評測及調優(yōu)方面的工作和研究。

劉智瓊:高級工程師,碩士畢業(yè)于湖南大學,現(xiàn)任職于中國電信股份有限公司廣州研究院,研究方向為電信運營商支撐系統(tǒng)。

endprint

5.2負載均衡設計

負載均衡設計是對查詢性能評估算法中C1因子的優(yōu)化。查詢服務的吞吐量易受限于單臺PCServer的處理能力,經(jīng)過試驗,DL380 Gen8的查詢平均時延不超過0.05s的情況下,最大允許的并發(fā)查詢用戶數(shù)為120個。那么在PCServer集群環(huán)境下查詢服務也須使用分布式結構,且各主機對查詢請求負載均衡[7]。按照以上依據(jù),采用Nginx+Tomcat的負載均衡架構,將查詢消息通過Nginx負載均衡分發(fā)到4臺主機上。按照該負載均衡的設計,經(jīng)過試驗,4臺主機在查詢時延不超過0.05s的情況下,最大允許的并發(fā)用戶數(shù)達到450個。

5.3查詢應用的優(yōu)化

讀表操作是對查詢性能評估算法中因子λ1的優(yōu)化,具體優(yōu)化點包括以下6點:

(1)多HTable并發(fā)讀

創(chuàng)建多個HTable客戶端用于讀操作,提高讀數(shù)據(jù)的吞吐量。

(2)Scanner Caching

通過調用HTable.setScannerCaching(int scannerCaching)可以設置HBase scanner一次從服務端抓取的數(shù)據(jù)條數(shù),默認情況下一次一條。通過將此值設置成一個合理的值,可以減少scan過程中next()的時間開銷[7]。

(3)Scan Attribute Selection

scan時指定需要的Column Family,可以減少網(wǎng)絡傳輸數(shù)據(jù)量,否則默認scan操作會返回整行所有Column Family的數(shù)據(jù)[8]。

(4)Close ResultScanner

通過scan取完數(shù)據(jù)后,關閉ResultScanner,否則RegionServer可能會出現(xiàn)資源爭用的問題。

(5)批量讀

通過調用HTable.get(Get)方法可以根據(jù)一個指定的RowKey獲取一行記錄,同樣HBase提供了另一個方法:通過調用HTable.get(List)方法可以根據(jù)一個指定的RowKey列表,批量獲取多行記錄,只需要一次網(wǎng)絡I/O開銷,對于對數(shù)據(jù)實時性要求高而且網(wǎng)絡傳輸RTT高的情景,可帶來明顯的性能提升[9]。

(6)緩存查詢結果

對于頻繁查詢HBase的應用場景,可以考慮在應用程序中做緩存,當有新的查詢請求時,首先在緩存中查找,如果存在則直接返回,不再查詢HBase;否則對HBase發(fā)起讀請求查詢,然后在應用程序中將查詢結果緩存起來。至于緩存的替換策略,可以考慮LRU等常用的策略[9]。

5.4查詢性能結果對比分析

通過以上優(yōu)化,查詢50億數(shù)據(jù)優(yōu)化前后最終測試結果如表4所示:

表4數(shù)據(jù)優(yōu)化前后查詢性能結果對比

查詢

方法 虛擬用戶數(shù)/個 優(yōu)化前ATRT/s 優(yōu)化前TPS 優(yōu)化后ATRT/s 優(yōu)化后TPS

查50億 300 0.785 219 0.039 4 626

結合查詢的極限性能測評算法對以上結果進行分析:

(1)優(yōu)化前

結論一:每次查詢的尋址次數(shù)為4次,比理論最小尋址次數(shù)多了2次,可優(yōu)化HTable表設計和RowKey設計,減少查詢的尋址次數(shù);

結論二:查詢的應用只部署在1臺機器上,需使用負載均衡的分布式查詢,發(fā)揮所有機器的作用;

結論三:根據(jù)以上性能測評算法計算出的和為0.785與224,與實際測試結果0.785和219近似。

(2)優(yōu)化后

結論一:每次查詢的尋址次數(shù)為2次,已經(jīng)達到最優(yōu)的查詢尋址路徑;

結論二:查詢的應用使用是分布在6臺機器上的,充分發(fā)揮了每臺機器的作用;

結論三:根據(jù)以上性能測評算法計算出的和為0.04和4 614,與實際測試結果0.039與4 626近似。

6 結論

本文論述了電信企業(yè)在流量經(jīng)營背景下,基于Hadoop平臺的一種新的數(shù)據(jù)服務架構。基于Hadoop平臺搭建的分布式數(shù)據(jù)服務系統(tǒng)可以提供海量數(shù)據(jù)的高速入庫與查詢性能。同時本文通過真實實驗數(shù)據(jù),總結了在該架構下性能優(yōu)化的一般方案和性能計算模型,通過這些性能優(yōu)化方案可以將數(shù)據(jù)服務的質量提升到新的高度。

參考文獻:

[1] 蔡斌,陳湘萍. Hadoop技術內幕:深入解析Hadoop Common和HDFS架構設計與實現(xiàn)原理[M]. 北京: 機械工業(yè)出版社, 2013.

[2] 董西成. Hadoop技術內幕:深入解析MapReduce架構設計與實現(xiàn)原理[M]. 北京: 機械工業(yè)出版社, 2013.

[3] Lars George. HBase: The Definitive Guide[M]. O'Reilly, 2012.

[4] 陳能技,郭柏雅. 性能測試診斷分析與優(yōu)化[M]. 北京: 電子工業(yè)出版社, 2012.

[5] Apache. HUG8: January HBase User Group at StumbleUpon[EB/OL]. (2010-07-27). http://www.meetup.com/hbaseusergroup/events/12241393/.

[6] Apache. The Apache HBaseTM Reference Guide[EB/OL]. (2013-06-11). http://hbase.apache.org/book.html#configuration.

[7] 林偉偉. 一種改進的Hadoop數(shù)據(jù)放置策略[J]. 華南理工大學學報:自然科學版, 2012(1): 36-39.

[8] 張榆,馬友忠,孟小峰. 一種基于HBase的高效空間關鍵字查詢策略[J]. 小型微型計算機系統(tǒng), 2012(10): 72-74.

[9] European Conference, ServiceWave 2011 4th. Enhancing Query Support in HBase via an Extended Coprocessors Framework[C]. 2011.★

作者簡介

陳娜:高級工程師,碩士畢業(yè)于華中科技大學,現(xiàn)任職于中國電信股份有限公司廣州研究院,主要從事電信IT支撐系統(tǒng)的相關研究工作。

張金娟:工程師,碩士畢業(yè)于華南理工大學通信與信息系統(tǒng)專業(yè),現(xiàn)任職于中國電信股份有限公司廣州研究院,主要從事IT系統(tǒng)性能評測及調優(yōu)方面的工作和研究。

劉智瓊:高級工程師,碩士畢業(yè)于湖南大學,現(xiàn)任職于中國電信股份有限公司廣州研究院,研究方向為電信運營商支撐系統(tǒng)。

endprint

5.2負載均衡設計

負載均衡設計是對查詢性能評估算法中C1因子的優(yōu)化。查詢服務的吞吐量易受限于單臺PCServer的處理能力,經(jīng)過試驗,DL380 Gen8的查詢平均時延不超過0.05s的情況下,最大允許的并發(fā)查詢用戶數(shù)為120個。那么在PCServer集群環(huán)境下查詢服務也須使用分布式結構,且各主機對查詢請求負載均衡[7]。按照以上依據(jù),采用Nginx+Tomcat的負載均衡架構,將查詢消息通過Nginx負載均衡分發(fā)到4臺主機上。按照該負載均衡的設計,經(jīng)過試驗,4臺主機在查詢時延不超過0.05s的情況下,最大允許的并發(fā)用戶數(shù)達到450個。

5.3查詢應用的優(yōu)化

讀表操作是對查詢性能評估算法中因子λ1的優(yōu)化,具體優(yōu)化點包括以下6點:

(1)多HTable并發(fā)讀

創(chuàng)建多個HTable客戶端用于讀操作,提高讀數(shù)據(jù)的吞吐量。

(2)Scanner Caching

通過調用HTable.setScannerCaching(int scannerCaching)可以設置HBase scanner一次從服務端抓取的數(shù)據(jù)條數(shù),默認情況下一次一條。通過將此值設置成一個合理的值,可以減少scan過程中next()的時間開銷[7]。

(3)Scan Attribute Selection

scan時指定需要的Column Family,可以減少網(wǎng)絡傳輸數(shù)據(jù)量,否則默認scan操作會返回整行所有Column Family的數(shù)據(jù)[8]。

(4)Close ResultScanner

通過scan取完數(shù)據(jù)后,關閉ResultScanner,否則RegionServer可能會出現(xiàn)資源爭用的問題。

(5)批量讀

通過調用HTable.get(Get)方法可以根據(jù)一個指定的RowKey獲取一行記錄,同樣HBase提供了另一個方法:通過調用HTable.get(List)方法可以根據(jù)一個指定的RowKey列表,批量獲取多行記錄,只需要一次網(wǎng)絡I/O開銷,對于對數(shù)據(jù)實時性要求高而且網(wǎng)絡傳輸RTT高的情景,可帶來明顯的性能提升[9]。

(6)緩存查詢結果

對于頻繁查詢HBase的應用場景,可以考慮在應用程序中做緩存,當有新的查詢請求時,首先在緩存中查找,如果存在則直接返回,不再查詢HBase;否則對HBase發(fā)起讀請求查詢,然后在應用程序中將查詢結果緩存起來。至于緩存的替換策略,可以考慮LRU等常用的策略[9]。

5.4查詢性能結果對比分析

通過以上優(yōu)化,查詢50億數(shù)據(jù)優(yōu)化前后最終測試結果如表4所示:

表4數(shù)據(jù)優(yōu)化前后查詢性能結果對比

查詢

方法 虛擬用戶數(shù)/個 優(yōu)化前ATRT/s 優(yōu)化前TPS 優(yōu)化后ATRT/s 優(yōu)化后TPS

查50億 300 0.785 219 0.039 4 626

結合查詢的極限性能測評算法對以上結果進行分析:

(1)優(yōu)化前

結論一:每次查詢的尋址次數(shù)為4次,比理論最小尋址次數(shù)多了2次,可優(yōu)化HTable表設計和RowKey設計,減少查詢的尋址次數(shù);

結論二:查詢的應用只部署在1臺機器上,需使用負載均衡的分布式查詢,發(fā)揮所有機器的作用;

結論三:根據(jù)以上性能測評算法計算出的和為0.785與224,與實際測試結果0.785和219近似。

(2)優(yōu)化后

結論一:每次查詢的尋址次數(shù)為2次,已經(jīng)達到最優(yōu)的查詢尋址路徑;

結論二:查詢的應用使用是分布在6臺機器上的,充分發(fā)揮了每臺機器的作用;

結論三:根據(jù)以上性能測評算法計算出的和為0.04和4 614,與實際測試結果0.039與4 626近似。

6 結論

本文論述了電信企業(yè)在流量經(jīng)營背景下,基于Hadoop平臺的一種新的數(shù)據(jù)服務架構。基于Hadoop平臺搭建的分布式數(shù)據(jù)服務系統(tǒng)可以提供海量數(shù)據(jù)的高速入庫與查詢性能。同時本文通過真實實驗數(shù)據(jù),總結了在該架構下性能優(yōu)化的一般方案和性能計算模型,通過這些性能優(yōu)化方案可以將數(shù)據(jù)服務的質量提升到新的高度。

參考文獻:

[1] 蔡斌,陳湘萍. Hadoop技術內幕:深入解析Hadoop Common和HDFS架構設計與實現(xiàn)原理[M]. 北京: 機械工業(yè)出版社, 2013.

[2] 董西成. Hadoop技術內幕:深入解析MapReduce架構設計與實現(xiàn)原理[M]. 北京: 機械工業(yè)出版社, 2013.

[3] Lars George. HBase: The Definitive Guide[M]. O'Reilly, 2012.

[4] 陳能技,郭柏雅. 性能測試診斷分析與優(yōu)化[M]. 北京: 電子工業(yè)出版社, 2012.

[5] Apache. HUG8: January HBase User Group at StumbleUpon[EB/OL]. (2010-07-27). http://www.meetup.com/hbaseusergroup/events/12241393/.

[6] Apache. The Apache HBaseTM Reference Guide[EB/OL]. (2013-06-11). http://hbase.apache.org/book.html#configuration.

[7] 林偉偉. 一種改進的Hadoop數(shù)據(jù)放置策略[J]. 華南理工大學學報:自然科學版, 2012(1): 36-39.

[8] 張榆,馬友忠,孟小峰. 一種基于HBase的高效空間關鍵字查詢策略[J]. 小型微型計算機系統(tǒng), 2012(10): 72-74.

[9] European Conference, ServiceWave 2011 4th. Enhancing Query Support in HBase via an Extended Coprocessors Framework[C]. 2011.★

作者簡介

陳娜:高級工程師,碩士畢業(yè)于華中科技大學,現(xiàn)任職于中國電信股份有限公司廣州研究院,主要從事電信IT支撐系統(tǒng)的相關研究工作。

張金娟:工程師,碩士畢業(yè)于華南理工大學通信與信息系統(tǒng)專業(yè),現(xiàn)任職于中國電信股份有限公司廣州研究院,主要從事IT系統(tǒng)性能評測及調優(yōu)方面的工作和研究。

劉智瓊:高級工程師,碩士畢業(yè)于湖南大學,現(xiàn)任職于中國電信股份有限公司廣州研究院,研究方向為電信運營商支撐系統(tǒng)。

endprint

猜你喜歡
優(yōu)化
超限高層建筑結構設計與優(yōu)化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
PEMFC流道的多目標優(yōu)化
能源工程(2022年1期)2022-03-29 01:06:28
民用建筑防煙排煙設計優(yōu)化探討
關于優(yōu)化消防安全告知承諾的一些思考
一道優(yōu)化題的幾何解法
由“形”啟“數(shù)”優(yōu)化運算——以2021年解析幾何高考題為例
圍繞“地、業(yè)、人”優(yōu)化產業(yè)扶貧
事業(yè)單位中固定資產會計處理的優(yōu)化
消費導刊(2018年8期)2018-05-25 13:20:08
4K HDR性能大幅度優(yōu)化 JVC DLA-X8 18 BC
幾種常見的負載均衡算法的優(yōu)化
電子制作(2017年20期)2017-04-26 06:57:45
主站蜘蛛池模板: 国产美女无遮挡免费视频| 国产清纯在线一区二区WWW| 亚洲AV无码久久精品色欲| 久久99久久无码毛片一区二区| 久久中文字幕2021精品| 在线国产综合一区二区三区| 色综合中文字幕| 精品国产99久久| 亚洲成人精品久久| 在线观看91香蕉国产免费| 久久黄色视频影| 国产精品毛片一区| 人妻精品全国免费视频| 天天色天天操综合网| 亚洲国产成人精品青青草原| 欧美va亚洲va香蕉在线| 国产成a人片在线播放| 91精品免费久久久| 国产产在线精品亚洲aavv| 欧美有码在线| 久久国产黑丝袜视频| 亚洲a级毛片| 波多野结衣在线一区二区| 成人日韩精品| 少妇高潮惨叫久久久久久| 伊人网址在线| 成人福利在线观看| 视频国产精品丝袜第一页| 亚洲成人网在线观看| 国产高清又黄又嫩的免费视频网站| 精品福利一区二区免费视频| 亚洲二区视频| 亚洲成a人片7777| 免费播放毛片| 国产尤物在线播放| 国产成年女人特黄特色大片免费| 国产精选小视频在线观看| 成年人福利视频| 欧美日韩国产系列在线观看| 国产高清不卡| 国产欧美日韩18| 91无码人妻精品一区二区蜜桃| 国产精品永久久久久| 精品久久蜜桃| 呦女亚洲一区精品| 国产成人乱无码视频| 色综合天天综合中文网| 久久精品66| 2024av在线无码中文最新| 久久婷婷国产综合尤物精品| 老色鬼久久亚洲AV综合| 国产精品漂亮美女在线观看| 午夜精品久久久久久久无码软件| 在线国产91| 人妻丰满熟妇αv无码| 狠狠色丁香婷婷综合| 制服丝袜国产精品| 国产成人精彩在线视频50| 国产成人91精品| 国产成人精品一区二区不卡| 狂欢视频在线观看不卡| 另类欧美日韩| 久久青草免费91观看| 欧美三級片黃色三級片黃色1| 国产制服丝袜91在线| 亚洲性影院| 成人韩免费网站| 手机在线看片不卡中文字幕| 综合色区亚洲熟妇在线| 久综合日韩| 国产亚洲视频中文字幕视频| 国产尹人香蕉综合在线电影| 天天色天天综合网| 久久精品嫩草研究院| 欧美日韩中文国产va另类| 88av在线| 在线观看无码av免费不卡网站| 欧美a级完整在线观看| 亚洲午夜综合网| 欧美a级在线| 人妻丰满熟妇av五码区| 2021国产在线视频|