概述
我們已經(jīng)處于信息爆炸的時(shí)代,不計(jì)其數(shù)的互聯(lián)網(wǎng)用戶和機(jī)器間的連接導(dǎo)致數(shù)據(jù)呈爆發(fā)式增長,時(shí)至今日我們獲取的信息比以往任何時(shí)候都多,并且數(shù)據(jù)產(chǎn)生的速度仍然在高速增長。如圖1所示:
圖1 Big Data: Unconstrained data growth
量變引起了質(zhì)變,存儲和分析快速增加的海量數(shù)據(jù),為傳統(tǒng)分析工具提出了新的挑戰(zhàn),我們使用和分析數(shù)據(jù)的方式有了翻天覆地的變化。
Hadoop是當(dāng)前流行的開源大數(shù)據(jù)存儲和處理框架,具有高可靠性和擴(kuò)展性,可以輕易地部署包括成千上萬節(jié)點(diǎn)的集群。Hadoop由兩大核心部件組成:一個(gè)分布式文件存儲系統(tǒng)HDFS,解決了海量數(shù)據(jù)的存取問題;一個(gè)易于使用的MapReduce編程模型,使得海量數(shù)據(jù)的分析變得更加容易。
但是,MapReduce模型也存在一些問題,導(dǎo)致其未能達(dá)到理想性能,這些問題包括序列化的障礙增加了Reduce的時(shí)延、重復(fù)合并以及頻繁的磁盤訪問、缺乏支持高速互聯(lián)技術(shù)等。在MapReduce執(zhí)行期間,數(shù)據(jù)需要在各個(gè)DataNode之間傳輸,Map階段處理好的數(shù)據(jù),Shuffle之后遞交給Reduce階段。在此過程中,網(wǎng)絡(luò)會是一個(gè)瓶頸,制約著Reduce的性能?;赗DMA協(xié)議的UDA(Unstructured Data Accelerator)插件可以加速M(fèi)apper-Reducer之間的數(shù)據(jù)傳輸,進(jìn)而提高M(jìn)apReduce的整體性能。
恒為RDMA解決方案
恒為科技的DxWay大數(shù)據(jù)服務(wù)器,板載自帶Mellanox InfiniBand和10/40Gb 以太網(wǎng) RoCE(RDMA over Converged Ethernet)自適應(yīng)網(wǎng)卡,支持基于RDMA的UDA加速技術(shù),以Hadoop插件的形式加速大數(shù)據(jù)的處理。
UDA使用基于network-levitated合并算法,在該算法中,數(shù)據(jù)直接在兩個(gè)節(jié)點(diǎn)之間的內(nèi)存里移動,省去了Shuffle、Merge以及Reduce過程中的序列化操作。RDMA(Remote Direct Memory Access)技術(shù)在加快Map和Reduce之間數(shù)據(jù)傳輸?shù)耐瑫r(shí),還可以將CPU從數(shù)據(jù)傳輸中解放出來,從而節(jié)省CPU資源。釋放出來的CPU資源又可以啟動新的數(shù)據(jù)進(jìn)程,進(jìn)而從總體上增加了系統(tǒng)的吞吐量。
UDA性能
使用UDA可以使大幅節(jié)省Reduce過程的執(zhí)行時(shí)間,并提高吞吐量,可以提升50%。并且,數(shù)據(jù)集越大,越可以從UDA中受益。
以DxWay2040型號為例(2U4節(jié)點(diǎn),每節(jié)點(diǎn)2顆E5-2620,32GB內(nèi)存,使用Intel82599萬兆以太網(wǎng)卡和Mellanox InfiniBand 10/40Gb網(wǎng)卡),對不同數(shù)據(jù)量下的時(shí)用時(shí)情況如下圖所示:
圖2:正常模式和UDA模式下Terasort用時(shí)對比
對于CPU利用率,以Terasort-200GB數(shù)據(jù)量為例,其中一個(gè)節(jié)點(diǎn)的CPU利用率如圖3、圖4所示,未啟用UDA功能時(shí),CPU利用率如圖3所示:
圖3:未啟用UDA時(shí)的CPU利用率
Reduce階段,CPU利用率累加和大約為20707。
啟用UDA功能時(shí),CPU利用率如圖4所示:
圖4:啟用UDA時(shí)的CPU利用率
Reduce階段,CPU利用率累加和大約為13180。
由圖3、圖4可以看出,UDA模式下,Reduce過程大幅縮短,總體CPU使用率也比正常模式下低約36%。
結(jié)論
1)使用UDA功能時(shí),可以有效降低MapReduce程序的用時(shí),大約可以節(jié)約40%的時(shí)間。
2)使用UDA功能時(shí),平均CPU利用率有所上升,但考慮到執(zhí)行時(shí)間因素,Reduce階段,UDA模式下的CPU利用率比正常模式低約36%。