在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RDMA技術(shù)在Apache Spark中的應(yīng)用

中科馭數(shù) ? 來源:中科馭數(shù) ? 作者:中科馭數(shù) ? 2024-03-25 18:13 ? 次閱讀

背景介紹

在當(dāng)今數(shù)據(jù)驅(qū)動的時代,ApacheSpark已經(jīng)成為了處理大規(guī)模數(shù)據(jù)集的首選框架。作為一個開源的分布式計算系統(tǒng),Spark因其高效的大數(shù)據(jù)處理能力而在各行各業(yè)中廣受歡迎。無論是金融服務(wù)、電信、零售、醫(yī)療保健還是物聯(lián)網(wǎng),Spark的應(yīng)用幾乎遍及所有需要處理海量數(shù)據(jù)和復(fù)雜計算的領(lǐng)域。它的快速、易用和通用性,使得數(shù)據(jù)科學(xué)家和工程師能夠輕松實現(xiàn)數(shù)據(jù)挖掘、數(shù)據(jù)分析、實時處理等任務(wù)。

然而,在Spark的燦爛光環(huán)背后,一個核心的技術(shù)挑戰(zhàn)一直困擾著用戶和開發(fā)者--Shuffle過程中的網(wǎng)絡(luò)瓶頸。

在大規(guī)模數(shù)據(jù)處理時,Shuffle是Spark中不可或缺的一環(huán),它涉及大量數(shù)據(jù)在不同節(jié)點間的交換,是整個數(shù)據(jù)處理過程中最耗時的部分之一。隨著數(shù)據(jù)量的不斷增長,網(wǎng)絡(luò)傳輸成為了顯著的性能瓶頸,這不僅影響了處理速度,還影響了整體的資源利用效率和系統(tǒng)的可擴展性。

ApacheSparkShuffle

在Spark中,Shuffle是數(shù)據(jù)處理過程的一個關(guān)鍵階段,發(fā)生在數(shù)據(jù)需要redistribute的情況。

wKgaomXlNumAD4qkAAKXD6F2opA173.png

圖一:shuffle中的數(shù)據(jù)流向

每個左上角的彩色條帶代表Spark在Shuffle前計算得到的一個數(shù)據(jù)塊。假設(shè)這些數(shù)據(jù)塊分別存放在集群的不同的節(jié)點上。此刻,假設(shè)我們希望“根據(jù)顏色將這些數(shù)據(jù)塊進行分組”,那么Shuffle過程就會啟動:

首先,每臺機器上的數(shù)據(jù)塊會按顏色進行本地第一次聚合(從左上角的彩色條帶變?yōu)橹猩喜康牟噬珬l帶)。這些經(jīng)過聚合的數(shù)據(jù)就成了Shuffle的中間數(shù)據(jù)。接下來,Spark會將中間數(shù)據(jù)以文件的形式暫存到各自節(jié)點的硬盤上(從中上部的條帶變?yōu)?File")。這一部分稱為Shuffle的Map階段。

在這之后,所有相同顏色的數(shù)據(jù)塊會通過網(wǎng)絡(luò)第二次聚合到一個指定的節(jié)點上(從中上部的彩色條帶移動至中下部)。這一階段稱為Shuffle的Reduce階段。

至此,Spark完成了“根據(jù)顏色將數(shù)據(jù)塊進行分組”這個要求,Shuffle過程結(jié)束。

在實際的操作中,Shuffle是一個非常耗時的過程,因為它涉及到大量的數(shù)據(jù)在網(wǎng)絡(luò)中的傳輸。如果Shuffle管理得不好,它會成為Spark作業(yè)性能瓶頸的主要原因。

解決SparkShuffle網(wǎng)絡(luò)傳輸性能瓶頸的關(guān)鍵

為了克服這一挑戰(zhàn),近年來,遠程直接內(nèi)存訪問(RDMA)技術(shù)逐漸進入了專家們的視野。RDMA允許內(nèi)存數(shù)據(jù)直接從一個系統(tǒng)傳輸?shù)搅硪粋€系統(tǒng),而無需通過操作系統(tǒng)的干預(yù),這顯著減少了數(shù)據(jù)傳輸過程中的延遲和CPU的使用率。在高性能計算和大規(guī)模數(shù)據(jù)中心環(huán)境中,RDMA已經(jīng)顯示出了其強大的網(wǎng)絡(luò)加速能力。

將RDMA技術(shù)應(yīng)用于ApacheSpark,尤其是在Shuffle過程中,可以大幅度減輕網(wǎng)絡(luò)瓶頸帶來的影響。通過利用RDMA的高帶寬和低延遲特性,Spark的數(shù)據(jù)處理性能有望得到顯著的提升。

RDMA相比傳統(tǒng)網(wǎng)絡(luò)技術(shù)的優(yōu)勢

KernelBypass:

傳統(tǒng)的網(wǎng)絡(luò)通信需要操作系統(tǒng)內(nèi)核參與數(shù)據(jù)的發(fā)送和接收,這會增加額外的延遲。每個數(shù)據(jù)包在傳輸過程中都需要經(jīng)過操作系統(tǒng)的網(wǎng)絡(luò)協(xié)議棧,這個過程中涉及多次上下文切換和數(shù)據(jù)拷貝。如下圖所示。

wKgZomXlNwSACXgLAACVQku12Ds262.png

圖二:傳統(tǒng)網(wǎng)絡(luò)通信中數(shù)據(jù)的發(fā)送和接收

RDMA技術(shù)允許網(wǎng)絡(luò)設(shè)備直接訪問應(yīng)用程序內(nèi)存空間,實現(xiàn)了內(nèi)核旁路(kernelbypass)。這意味著數(shù)據(jù)可以直接從發(fā)送方的內(nèi)存?zhèn)鬏數(shù)浇邮辗降膬?nèi)存,無需CPU介入,減少了傳輸過程中的延遲。如下圖所示。

wKgZomXlNxqAQkllAACTNh6et2c004.png

圖三:RDMA網(wǎng)絡(luò)通信中數(shù)據(jù)的發(fā)送和接收

對于Spark的Shuffle過程,這意味著數(shù)據(jù)塊可以更快地在節(jié)點間傳輸,因為它們不再需要在用戶空間和內(nèi)核空間之間進行多次拷貝。

CPUOffloading:

在傳統(tǒng)的網(wǎng)絡(luò)通信中,CPU需要處理包括TCP協(xié)議棧在內(nèi)的大量網(wǎng)絡(luò)協(xié)議處理任務(wù),這不僅消耗了大量的計算資源,而且還增加了通信的延遲。

RDMA通過其協(xié)議和硬件的設(shè)計,允許網(wǎng)絡(luò)設(shè)備處理大部分?jǐn)?shù)據(jù)傳輸?shù)募?xì)節(jié),從而釋放CPU資源。這意味著CPU可以專注于執(zhí)行計算任務(wù),而不是網(wǎng)絡(luò)數(shù)據(jù)的傳輸,從而提高了整體的計算效率。

在Spark中,這樣可以確保CPU更多地用于執(zhí)行Map和Reduce階段之外的實際計算工作,而不是在網(wǎng)絡(luò)通信上。

RDMA技術(shù)在ApacheSpark中的應(yīng)用

在Spark中集成RDMA

Spark允許將外部實現(xiàn)的ShuffleManager插入到其架構(gòu)中。下圖中通過實現(xiàn)Spark的接口,可以創(chuàng)建專有的ShuffleManager從而將RDMA技術(shù)引入到Shuffle過程中。

wKgZomXlNyyAGKp6AAA61FXaPIQ808.png

圖四:通過Spark接口將RDMA集成到ApacheSpark

RDMA加速的實現(xiàn)

wKgaomXlNzuAfXS5AABqIl6TmbM032.png

圖五:RDMA在SparkShuffle過程中的位置

上圖中展示了RDMA引入ApacheSpark前后的Shuffle過程中的數(shù)據(jù)傳輸方式。

在上半部分,展示了ApacheSpark使用Netty作為網(wǎng)絡(luò)傳輸層的傳統(tǒng)方法。數(shù)據(jù)從磁盤讀取,通過Netty服務(wù)器傳輸,然后由Netty客戶端接收,并放入隊列中供進一步處理。

在下半部分,展示了使用RDMA作為網(wǎng)絡(luò)傳輸層的方法。在這種方式中,Netty客戶端被RDMA客戶端替換,而由于RDMA單邊操作的特性,不再需要服務(wù)器端,Disk上的數(shù)據(jù)通過MMAP加載進入用戶空間的內(nèi)存,之后Client使用RDMA直接在網(wǎng)絡(luò)上進行內(nèi)存訪問操作,避免了數(shù)據(jù)在操作系統(tǒng)內(nèi)存和網(wǎng)絡(luò)接口之間的多次復(fù)制,從而提高了數(shù)據(jù)傳輸速度,并減少了延遲和CPU負(fù)載。

性能數(shù)據(jù)和比較分析

為了驗證我們的實現(xiàn),我們在多種數(shù)據(jù)集和查詢負(fù)載下進行了性能測試。測試結(jié)果如下圖所示

wKgaomXlNrGAUxL6AAIIOaOg5mc969.png

圖六:SQL的性能提升效果

這些測試結(jié)果表明,在多種場景下使用RDMA均能實現(xiàn)大約10%左右的性能提升。然而,值得注意的是,具體的加速效果會受到業(yè)務(wù)邏輯和數(shù)據(jù)處理工作負(fù)載的影響,因此我們推薦在實施RDMA解決方案前,對特定的應(yīng)用場景進行詳細(xì)評估。

應(yīng)用場景建議

通過RDMA和Spark的特性分析,結(jié)合測試,可得到針對RDMA技術(shù)在Spark中適用和不適用的場景的優(yōu)化建議:

適合RDMA的場景

大數(shù)據(jù)量的復(fù)雜SQL操作:在處理包含復(fù)雜操作(如Orderby)的大數(shù)據(jù)量SQL查詢時,RDMA技術(shù)可顯著提升效率。

大量小數(shù)據(jù)分區(qū):當(dāng)分區(qū)數(shù)量較多,且每個分區(qū)處理的數(shù)據(jù)量較小,傳送的數(shù)據(jù)包較多時,RDMA的加速效果尤為顯著。

不適合RDMA的場景

數(shù)據(jù)量大幅減少的操作:如SQL中的Groupby聚合操作等,這些減少數(shù)據(jù)量的計算可能不會從RDMA中獲得顯著加速。

基于HDD的磁盤集群:在使用HDD磁盤的集群中,由于讀寫速度較慢,磁盤I/O所占的時間較長,這可能限制RDMA技術(shù)的加速潛力。

數(shù)據(jù)高度本地化:如果數(shù)據(jù)本地化良好,則意味著網(wǎng)絡(luò)傳輸占比較少,這種計算難以通過RDMA獲得加速。

總結(jié)

盡管面臨一些挑戰(zhàn),RDMA技術(shù)在ApacheSpark中的應(yīng)用仍然有著顯著的優(yōu)勢,體現(xiàn)在以下幾個方面:

提高數(shù)據(jù)傳輸效率:RDMA通過提供低延遲和高帶寬的數(shù)據(jù)傳輸,顯著加快了Spark中的數(shù)據(jù)處理速度。這是因為RDMA直接在網(wǎng)絡(luò)設(shè)備和應(yīng)用程序內(nèi)存之間傳輸數(shù)據(jù),減少了CPU的干預(yù),從而降低了數(shù)據(jù)傳輸過程中的延遲。

減少CPU占用:RDMA的KernelBypass特性允許數(shù)據(jù)繞過內(nèi)核直接從內(nèi)存?zhèn)鬏敚瑴p少了CPU在數(shù)據(jù)傳輸過程中的工作量。這不僅提高了CPU的有效利用率,還留出了更多資源用于Spark的計算任務(wù)。

改善端到端處理時間:在對比測試中,使用RDMA相比傳統(tǒng)的TCP傳輸方式,在端到端的數(shù)據(jù)處理時間上有顯著的降低。這意味著整體的數(shù)據(jù)處理流程更加高效,能夠在更短的時間內(nèi)完成相同的計算任務(wù)。

優(yōu)化Shuffle階段的性能:在Spark中,Shuffle階段是一個關(guān)鍵的、對性能影響較大的階段。RDMA通過減少數(shù)據(jù)傳輸和處理時間,有效地優(yōu)化了Shuffle階段的性能,從而提升了整個數(shù)據(jù)處理流程的效率。

增強大規(guī)模數(shù)據(jù)處理能力:對于處理大規(guī)模數(shù)據(jù)集的場景,RDMA提供的高效數(shù)據(jù)傳輸和低延遲特性尤為重要。它使得Spark能夠更加高效地處理大數(shù)據(jù)量,提高了大規(guī)模數(shù)據(jù)處理的可擴展性和效率。

總而言之,RDMA技術(shù)在ApacheSpark中的應(yīng)用顯著提升了數(shù)據(jù)處理的效率和性能。在未來,相信隨著數(shù)據(jù)量的持續(xù)增長和計算需求的日益復(fù)雜化,RDMA技術(shù)在ApacheSpark以及更廣泛的大數(shù)據(jù)處理和高性能計算領(lǐng)域的應(yīng)用將越來越廣。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1209

    瀏覽量

    24848
  • RDMA
    +關(guān)注

    關(guān)注

    0

    文章

    78

    瀏覽量

    8986
  • SPARK
    +關(guān)注

    關(guān)注

    1

    文章

    105

    瀏覽量

    19989
收藏 人收藏

    評論

    相關(guān)推薦

    Spark入門及安裝與配置

    1.下載spark-2.1.0-bin-hadoop2.7.tgz以下是Spark的官方下載地址:https://www.apache.org/dyn/closer.lua/spark
    發(fā)表于 07-31 16:22

    基于Spark 2.1版本的Apache Spark內(nèi)存管理

    Apache Spark 內(nèi)存管理詳解
    發(fā)表于 04-26 17:13

    基于RDMA技術(shù)Spark Shuffle性能提升

    一篇文章教你使用RDMA技術(shù)提升Spark的Shuffle性能
    發(fā)表于 10-28 16:46

    基于Apache Spark 的下一波智能應(yīng)用

    基于Apache Spark 的下一波智能應(yīng)用
    發(fā)表于 12-28 11:07 ?0次下載

    如何使用Apache Spark 2.0

    數(shù)據(jù)集(Resilient Distributed Dataset,RDD)一直是Spark的主要抽象。RDD API是Scala集合框架之后建模的,因此間接提供了Hadoop Map / Reduce熟悉的編程
    發(fā)表于 09-28 19:00 ?0次下載
    如何使用<b class='flag-5'>Apache</b> <b class='flag-5'>Spark</b> 2.0

    Apache Spark 1.6預(yù)覽版新特性展示

    的notebooks。本博文中,將對這些令人興奮的新特性提供一個簡短的介紹。 Apache Spark 1.6預(yù)覽 Patrick Wendell宣布了Spark 1.6 預(yù)覽版。我
    發(fā)表于 10-13 11:21 ?0次下載
    <b class='flag-5'>Apache</b> <b class='flag-5'>Spark</b> 1.6預(yù)覽版新特性展示

    Apache Spark的分布式深度學(xué)習(xí)框架BigDL的概述

    該視頻概述了Apache Spark *的BigDL分布式深度學(xué)習(xí)框架。
    的頭像 發(fā)表于 10-30 06:41 ?3301次閱讀

    Apache Spark上的分布式機器學(xué)習(xí)的介紹

    Apache Spark上的分布式機器學(xué)習(xí)
    的頭像 發(fā)表于 11-05 06:31 ?2955次閱讀

    Apache Spark 3.2有哪些新特性

    經(jīng)過七輪投票, Apache Spark 3.2 終于正式發(fā)布了。Apache Spark 3.2 已經(jīng)是 Databricks Runtime 10.0 的一部分,感興趣的同學(xué)可以去
    的頭像 發(fā)表于 11-17 14:09 ?1835次閱讀

    一文詳細(xì)了解APACHE SPARK開源框架

    Apache Spark 是一個開源框架,適用于跨集群計算機并行處理大數(shù)據(jù)任務(wù)。它是全球廣泛應(yīng)用的分布式處理框架之一。
    的頭像 發(fā)表于 04-19 14:22 ?2253次閱讀

    利用Apache Spark和RAPIDS Apache加速Spark實踐

      第三期文章,我們詳細(xì)介紹了如何充分利用 Apache SparkApache RAPIDS 加速器
    的頭像 發(fā)表于 04-26 17:39 ?1935次閱讀
    利用<b class='flag-5'>Apache</b> <b class='flag-5'>Spark</b>和RAPIDS <b class='flag-5'>Apache</b>加速<b class='flag-5'>Spark</b>實踐

    Apache Spark 靠什么幫助獲得市場頭把交椅?

    Apache Spark 是最快的工具之一,適用于大規(guī)模數(shù)據(jù)處理。有時,它甚至被認(rèn)為是最頂級的數(shù)據(jù)處理解決方案之一,甚至比 Hadoop 等平臺更快。這無疑是技術(shù)的福音。 作為一個非?;钴S的開放
    發(fā)表于 08-01 16:06 ?456次閱讀

    NVIDIA ConnectX智能網(wǎng)卡驅(qū)動RDMA通訊技術(shù)分布式存儲的應(yīng)用

    NVIDIA ConnectX 智能網(wǎng)卡及開源 UCX 框架幫助網(wǎng)易高性能 RDMA 網(wǎng)絡(luò)通訊功能實現(xiàn)更優(yōu)表現(xiàn),助力網(wǎng)易通過 Curve 開源項目為 Apache BRPC 自主實現(xiàn)高性能的 RDMA 網(wǎng)絡(luò)通訊。
    的頭像 發(fā)表于 11-03 09:48 ?1133次閱讀

    RDMA技術(shù)簡介

    RDMA 指的是一種遠程直接存儲器訪問技術(shù)。具體到協(xié)議層面,它主要包含 InfiniBand、RoCE 和 iWARP 三種協(xié)議。三種協(xié)議都符合 RDMA 標(biāo)準(zhǔn),共享相同的上層用戶接口(Verbs),只是
    的頭像 發(fā)表于 04-13 10:48 ?3855次閱讀

    Spark ML算法提供GPU加速度

    新的 GPU 庫降低了 Apache Spark ML 的計算成本
    的頭像 發(fā)表于 07-05 16:30 ?809次閱讀
    為<b class='flag-5'>Spark</b> ML算法提供GPU加速度
    主站蜘蛛池模板: 久久久婷婷亚洲5月97色 | 天天色天天射天天操 | 男女交性视频播放 视频 视频 | 亚洲第一成人在线 | 国产三级 在线播放 | seba51久久精品 | 午夜寂寞影院视频观看 | 一女被多男玩很肉很黄文 | 亚洲免费网站 | 亚洲黄色影片 | 色婷婷影院在线视频免费播放 | 乱人伦xxxx国语对白 | 狠狠狠狠狠操 | 四虎在线最新地址公告 | mm131美女肉体艺术图片 | 人人洗澡人人洗澡人人 | 老色歌uuu26 老湿成人影院 | 天天天天做夜夜夜做 | 成人综合在线视频 | 成人国产一区二区 | 久久免费精品 | 国产1卡2卡三卡四卡网站 | 国产情侣自拍小视频 | 日本系列 1页 亚洲系列 | 福利视频亚洲 | 日本特黄特色特爽大片老鸭 | 午夜久久免影院欧洲 | 亚洲成a人片在线网站 | 欧美色p | 黄视频网站免费 | 你懂的福利 | 男人边吃奶边爱边做视频日韩 | 欧美xxxx极品流血 | 久久综合社区 | 日日干夜夜草 | 亚洲天堂二区 | 精品日韩一区二区三区 | 天天干天天拍天天射 | 国产美女主播在线 | 男女一进一出抽搐免费视频 | 国产女主播在线播放一区二区 |