日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于英特尔® 优化分析包(OAP)的 Spark 性能优化方案

發布時間:2024/8/23 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于英特尔® 优化分析包(OAP)的 Spark 性能优化方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介:?Spark SQL 作為 Spark 用來處理結構化數據的一個基本模塊,已經成為多數企業構建大數據應用的重要選擇。但是,在大規模連接(Join)、聚合(Aggregate)等工作負載下,Spark 性能會面臨穩定性和性能方面的挑戰。

Spark SQL 作為 Spark 用來處理結構化數據的一個基本模塊,已經成為多數企業構建大數據應用的重要選擇。但是,在大規模連接(Join)、聚合(Aggregate)等工作負載下,Spark 性能會面臨穩定性和性能方面的挑戰。

為了提升 Spark SQL 的性能,用戶可以選擇使用英特爾? 優化分析包(Optimized Analytics Package,OAP)以及英特爾? 傲騰? 持久內存和新一代英特爾? 至強? 處理器來改善典型 Spark SQL 工作負載的運行效率。

Spark SQL 面臨多場景性能瓶頸

IDC 報告顯示,全球數據規模將從2019年的45 ZB 增長到2025年的175 ZB ,2020年創建、捕獲和消耗的數據量估計過 59 ZB。在數據快速移動、迅猛增長的趨勢下,企業需要使用先進的分析技術來實時處理數據以獲得實時的業務洞察力。大數據分析技術的新發展與革命性新硬件的問世,顯著提高了大數據分析性能,使得數據科學家、分析師和業務用戶能夠獲得更深刻的業務洞察。

作為面向大規模數據處理而設計的快速通用的計算引擎,Spark 具有開源、經濟、靈活等優點,常用來構建大型、低延遲的數據分析應用程序。但是,Spark 在特定場景下依然會面臨性能挑戰,特別是當處理特大規模數據及交互式查詢時。例如,由于缺少高性能緩存方案,數據 I/O 很容易成為瓶頸。此外,Spark Shuffle 也常常因為大量的較小隨機磁盤 IO、序列化、網絡數據傳輸成為性能瓶頸,導致作業延遲大幅增加,進而影響工作負載性能。

新興的硬件技術可以幫助解決這些挑戰。例如,高級矢量擴展(AVX)功能使 Spark 能夠利用 SIMD 同時處理更多的數據來加快執行速度,而英特爾? 傲騰? 持久內存可以利用其高性能,大容量和低延遲創新的突破性組合來提高 Spark SQL 性能。OAP(優化分析包)是英特爾和社區開發的一個開源項目,旨在借助先進的英特爾處理器、內存和存儲以及網絡技術,通過數據源緩存、SQL 索引、Native SQL 引擎、MLlib 優化等創新軟件功能提高 Spark 性能,以解決 Spark 核心和相關組件面臨的計算和 I/O挑戰。

英特爾 Spark 優化分析包(OAP)

英特爾? 優化分析包(OAP)是英特爾和社區開發的開源項目,旨在提高 Spark 性能。它基于先進的英特爾硬件技術,提供了多種功能來改善 Spark 高速緩存、Shuffle、執行和機器學習性能。如下圖1顯示了 OAP 架構,它包括以下組件:OAP 數據源高速緩存、Native SQL 引擎、Arrow 數據源、OAP MLlib、RDD 高速緩存、RPMem Shuffle 和遠端 Shuffle。

  • SQL 數據源高速緩存: 一種優化的擴展包,通過在 Spark SQL 數據源層使用高速緩存技術來提升 Spark SQL 性能。
  • Native 執行引擎: Spark SQL 的 Native 引擎將 Spark 行數處理轉為列式處理,并借助矢量化 SIMD 以及 Arrow 數據格式進行加速。
  • MLlib: Vanilla Spark MLlib 的替代版本,通過oneDAL、oneMKL 和 oneCCL 進行了優化。
  • RDD 高速緩存、RPMem Shuffle 等功能:通過借助持久內存的大容量、高性能等特點來避免存儲溢出(包括 RDD 高速緩存、溢出、中間數據),提高 Spark 性能。
  • 遠端 Shuffle: 支持遠端 Shuffle 和基于持久內存的 Shuffle。

(圖1)

OAP 數據源高速緩

數據源高速緩存(SQL DataSource Cache)旨在利用用戶定義的索引和智能細粒度內存數據高速緩存來提高 Spark SQL 性能(如圖2所示),主要目的是解決交互式查詢和批處理作業的性能問題。

(圖2)

  • 交互式查詢

大多數用戶使用 Spark SQL 作為批處理引擎。但作為一個統一處理引擎,很難與非批處理區分。交互式查詢需要在幾秒、甚至幾亞秒內返回數據,而非批處理所需的幾分鐘、甚至幾小時。這對于當前的 Spark SQL 數據處理來說是一個很大的挑戰。交互式查詢通常處理較大的數據集,但在通過特定條件過濾后只返回一小部分數據。通過為關鍵列創建和存儲完整的 B+ 樹索引,并使用智能細粒度內存數據高速緩存策略,Spark SQL 交互式查詢處理時間可以顯著縮短

  • 批處理作業

對于在數據倉儲中使用 Spark SQL 進行業務分析的用戶,OAP SQL 數據源高速緩存可以通過兩種可配置的高速緩存策略來加速批處理作業:

? 自動高速緩存熱數據。

? 專門高速緩存熱表。

SQL 索引和數據源高速緩存為不同列式存儲格式提供統一的高速緩存表示形式,并設計了針對 RowGroup 中單列的細粒度高速緩存單元。同時,它為兩種列存儲文件格式 Parquet 和 ORC 設計了兼容的適配器層,索引和高速緩存都構建在統一表示形式和適配器之上。

OAP 數據源高速緩存架構設計

數據源高速緩存可以高速緩存已解壓縮和已解碼的矢量化數據以及二進制原始數據。一般來說,DRAM 通常在 Spark 集群中用作高速緩存介質,但在 OAP 數據源高速緩存中,英特爾? 傲騰?持久內存也可以用作高速緩存介質,以提供高性能、高成本效益的高速緩存解決方案。如下圖3顯示了英特爾? 傲騰? 持久內存用作高速緩存介質時的 OAP 數據源高速緩存的架構設計。

(圖3)

OAP 數據源高速緩存提供以下主要功能:

  • 覆蓋內置的 Parquet/ORC 文件格式。
  • 在分布式集群中提供本地 cache(需要外部 KV 存儲以支持元數據持久性)。
  • NUMA 綁定以提供更高性能(若啟用英特爾? 傲騰? 持久內存的 snoopy 模式,則不需要 NUMA 綁定)。
  • 基于 Plasma 的實現,從而支持多個 spark 執行單元同時訪問緩存。

OAP RPMem Shuffle

Spark 旨在為不同的工作負載(如即席查詢、實時流和機器學習)提供高吞吐量和低延遲的數據處理。但是,在某些工作負載(大規模數據連接/聚合)下,由于 Shuffle 需要在本地 Shuffle 磁盤讀取/寫入中間數據并將其通過網絡傳輸,Spark 可能會出現性能瓶頸。英特爾? 傲騰? 持久內存是一種創新型內存技術,相較于 DRAM,其在同等價位下一般可提供更大的容量,并且支持數據的持久性。同時,遠程直接內存訪問(RDMA)技術支持在不同計算機之間進行獨立于操作系統的直接內存訪問,從而提供高吞吐量、低延遲的網絡性能。使用高性能英特爾? 傲騰? 持久內存和 RDMA 網絡可以幫助在一定程度上化解 Shuffle 挑戰。

OAP RPMem Shuffle 提供了一個名為 RPMem Shuffle 擴展的可插拔模塊,該模塊可通過修改配置文件覆蓋默認的 Spark Shuffle 管理器,無需更改 Spark 代碼即可使用。使用此擴展,Spark shuffle 可以充分利用英特爾? 傲騰? 持久內存和 RDMA Shuffle 解決方案,相較于傳統的基于磁盤的 shuffle 方式,可以顯著提高 Shuffle 性能。

OAP RPMem Shuffle 架構設計

如前文所述,Spark Shuffle 是一項成本高昂的操作,需要大量的小型隨機磁盤 IO、序列化、網絡數據傳輸等步驟,因此會大幅增加作業延遲,并且很容易成為工作負載性能的瓶頸。通常,Spark Shuffle 將從底層存儲加載數據并作為 Mapper 的輸入,然后 Mapper 將根據某種規則處理數據,例如根據特定的 Key 將數據分組到不同的分區中。每個 Mapper 的輸出都會持久化到本地存儲中,即 Shuffle 寫操作。然后 Reducer 會嘗試讀取不同 Mapper 的輸出數據,即 Shuffle 讀操作,再將讀入的數據進行排序等聚合操作,并最終輸出結果。可以看到,一個經典的 Shuffle 操作包括數據在磁盤的讀寫和在網絡的傳輸,而這二者在大數據集下都可能成為工作負載的性能瓶頸。

OAP RPMem Shuffle 旨在解決 Shuffle 瓶頸。如下圖4所示,OAP RPMem Shuffle 可以通過附加庫的形式覆蓋現有的 Spark Shuffle 實現。在底層,它使用英特爾? 傲騰? 持久內存作為 Shuffle 介質,并在用戶空間通過 libpmemobj 對英特爾? 傲騰?持久內存進行訪問,作為 PMDK 的重要組件,libpmemobj 在英特爾? 傲騰? 持久內存上提供了事務對象存儲。OAP RPMemShuffle 擴展使用 Java Native Interface 對 libpmemobj 進行封裝,并通過 Spark Shuffle Manager 以插件的方式接入Spark。

(圖4)

RDMA 網卡是 RPMem Shuffle 擴展的可選項,它可以增加網絡帶寬,降低網絡延遲和通信節點的 CPU 利用率。HPNL4 作為一款高性能網絡庫,支持各種網絡協議,如 TCP/IP、RoCE、iWRAP、OPA 等,它為 RPMem Shuffle 提供網絡通信支持。如下圖5顯示了 Vanilla Spark Shuffle 和 OAP RPMem Shuffle 的設計。

(圖5)

在 Vanilla Spark Shuffle 設計中,需要首先將數據序列化到堆外內存,然后寫入機械硬盤或固態盤上的本地文件系統,并最終通過 TCP-IP 網絡傳輸數據。這一過程涉及大量上下文切換和文件系統開銷,因此如果不對現在的 Spark shuffle 實現進行更改,就無法充分利用英特爾? 傲騰? 持久內存的能力。

OAP RPMem Shuffle 使用 libpmemobj 庫將數據直接寫入英特爾? 傲騰? 持久內存,然后通過將 RDMA 內存區域注冊在英特爾? 傲騰? 來傳輸數據。此實現方案減少了上下文切換開銷,消除了文件系統開銷,并可充分利用 RDMA 實現零拷貝來進一步降低延遲和 CPU 利用率。

原文鏈接
本文為阿里云原創內容,未經允許不得轉載。

總結

以上是生活随笔為你收集整理的基于英特尔® 优化分析包(OAP)的 Spark 性能优化方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产一区二区高清 | 台湾综合色 | 久久中文字幕精品 | 色偷偷亚洲 | www.九色.com | 久久神马| 亚洲色图 在线视频 | 日韩一级中文字幕 | mm131丰满少妇人体欣赏图 | 香蕉国产在线 | 国产精品日韩 | 麻豆传媒一区二区三区 | 免费公开在线视频 | 91aaaa| 国产精品宾馆在线 | 国精产品乱码一区一区三区四区 | 97久久人人超碰caoprom欧美 | 麻豆精品视频在线 | 中文字幕国产日韩 | 亚洲成人播放 | 欧美激情精品久久久久久变态 | 国产精品尤物视频 | 亚洲欧洲成人 | 九九视频免费观看 | 欧美日韩高清免费 | 草逼网站 | 日本人体一区 | 星空大象mv高清在线观看免费 | 性色av无码久久一区二区三区 | 伊人伊人 | 成人小视频在线 | 欧美三级 欧美一级 | 日本电影大尺度免费观看 | 日日操夜夜骑 | 丝袜美腿一区二区三区 | 蜜桃色av| 亚洲无码久久久久 | 日本熟妇毛耸耸xxxxxx | 亚洲高清免费视频 | 91在线免费观看网站 | 999精彩视频| 天天高潮夜夜爽 | 久久精品色欲国产AV一区二区 | 超碰在线亚洲 | 日本高清免费不卡视频 | www.色播| 一区二区三区中文视频 | 一级a毛片免费观看久久精品 | 五月婷婷爱 | 亚洲美女视频在线观看 | 成人av专区| 小辣椒福利视频导航 | 日本高清视频www | 看免费黄色大片 | 国产福利在线观看 | 国产黄色美女视频 | 国产aa | 亚洲专区一区 | 精品国产一级片 | 福利在线播放 | 国产极品在线播放 | 麻豆久久久久久 | 成人激情视频在线播放 | 亚洲一区二区综合 | 欧美男人亚洲天堂 | 欧美一级特黄aa大片 | 日韩精品无码一区二区三区 | www.日本在线视频 | 女生和男生一起插插插 | 亚洲综合丁香 | 日本大乳奶做爰 | 亚洲综合激情网 | 日韩色区 | 欧洲成人精品 | 亚洲色图制服丝袜 | 调教撅屁股啪调教打臀缝av | 日韩一区二区三区在线 | 欧美综合一区二区三区 | 自拍毛片 | 波多野结衣啪啪 | 影音先锋日韩资源 | 中文字幕在线观看免费视频 | 久久精品日韩 | 亚洲男女视频在线观看 | 亚洲性事 | 国产一区二区三区影院 | 美女穴穴 | 老头把女人躁得呻吟 | 三级三级久久三级久久18 | 国模少妇一区二区 | 国产一区二区啪啪啪 | 巨乳女教师的诱惑 | 欧美成年人在线观看 | 亚洲天堂毛片 | 四虎影视免费永久观看在线 | 成人在线视屏 | 中文视频一区二区 | 黑人与日本少妇高潮 | 日本久久久久久久久久 |