如果您的浏览器未跳转,请点击此处进行游戏并领取优惠

嵌入式與融合計算 >> 計算加速 >> 使用RDMA加速大數據處理

概述

我們已經處于信息爆炸的時代,不計其數的互聯網用戶和機器間的連接導致數據呈爆發式增長,時至今日我們獲取的信息比以往任何時候都多,并且數據產生的速度仍然在高速增長。如圖1所示:


圖1 Big Data: Unconstrained data growth


量變引起了質變,存儲和分析快速增加的海量數據,為傳統分析工具提出了新的挑戰,我們使用和分析數據的方式有了翻天覆地的變化。

Hadoop是當前最為流行的開源大數據存儲和處理框架,具有極高的可靠性和擴展性,可以輕易地部署包括成千上萬節點的集群。Hadoop由兩大核心部件組成:一個分布式文件存儲系統HDFS,解決了海量數據的存取問題;一個易于使用的MapReduce編程模型,使得海量數據的分析變得更加容易。

但是,MapReduce模型也存在一些問題,導致其未能達到最優性能,這些問題包括序列化的障礙增加了Reduce的時延、重復合并以及頻繁的磁盤訪問、缺乏支持最新的高速互聯技術等。在MapReduce執行期間,數據需要在各個DataNode之間傳輸,Map階段處理好的數據,Shuffle之后遞交給Reduce階段。在此過程中,網絡會是一個瓶頸,制約著Reduce的性能。基于RDMA協議的UDA(Unstructured Data Accelerator)插件可以加速Mapper-Reducer之間的數據傳輸,進而提高MapReduce的整體性能。


恒為RDMA解決方案

恒為科技的DxWay大數據服務器,板載自帶Mellanox InfiniBand和10/40Gb 以太網 RoCE(RDMA over Converged Ethernet)自適應網卡,支持基于RDMA的UDA加速技術,以Hadoop插件的形式加速大數據的處理。

UDA使用基于network-levitated合并算法,在該算法中,數據直接在兩個節點之間的內存里移動,省去了Shuffle、Merge以及Reduce過程中的序列化操作。RDMA(Remote Direct Memory Access)技術在加快Map和Reduce之間數據傳輸的同時,還可以將CPU從數據傳輸中解放出來,從而節省CPU資源。釋放出來的CPU資源又可以啟動新的數據進程,進而從總體上增加了系統的吞吐量。


UDA 性能

使用UDA可以使大幅節省Reduce過程的執行時間,并提高吞吐量,最高可以升50%。并且,數據集越大,越可以從UDA中受益。

以DxWay2040型號為例(2U4節點,每節點2顆E5-2620,32GB內存,使用Intel82599萬兆以太網卡和Mellanox InfiniBand 10/40Gb網卡),對不同數據量下的時用時情況如下圖所示:


圖2:正常模式和UDA模式下Terasort用時對比


對于CPU利用率,以Terasort-200GB數據量為例,其中一個節點的CPU利用率如圖3、圖4所示,未啟用UDA功能時,CPU利用率如圖3所示:


圖3:未啟用UDA時的CPU利用率


Reduce階段,CPU利用率累加和大約為20707。

啟用UDA功能時,CPU利用率如圖4所示:


圖4:啟用UDA時的CPU利用率


Reduce階段,CPU利用率累加和大約為13180。

由圖3、圖4可以看出,UDA模式下,Reduce過程大幅縮短,總體CPU使用率也比正常模式下低約36%。


結論

1)使用UDA功能時,可以有效降低MapReduce程序的用時,大約可以節約40%的時間。

2)使用UDA功能時,平均CPU利用率有所上升,但考慮到執行時間因素,Reduce階段,UDA模式下的CPU利用率比正常模式低約36%。




方案系列詳情