flink Shuffle的總結

關于 ** ?5 種 Shuffle 類型** 的區別、使用場景及 Flink 版本支持的總結:

* 注意:下面是問AI具體細節與整理學習


1. 核心區別

Shuffle 類型核心特點使用場景Flink 版本支持
Pipelined Shuffle流式調度,純內存交換,低延遲(毫秒級),支持反壓機制。流處理默認模式(如實時監控、風控)。所有版本(流處理默認)
Blocking Shuffle分階段調度,數據全量落盤,高吞吐但高延遲。子類型:
- Hash Shuffle(默認)
- Sort-Merge Shuffle(優化版)
批處理默認模式(如離線分析)。所有版本(批處理默認);
Sort-Merge 從 1.12+。
Hybrid Shuffle流批融合,動態選擇內存或磁盤存儲,優先內存交換,資源不足時落盤。批處理優化場景(資源波動、數據傾斜)。批處理:Flink 1.16+。
Remote Shuffle Service (RSS)存儲計算分離,獨立集群管理 Shuffle 數據,支持云原生部署(如 Apache Celeborn)。大規模批處理(PB 級數據)。插件化支持(Flink 1.14+)。
Sort-Merge Shuffle批處理優化,數據排序后合并寫入,減少文件數量和隨機 I/O。高并發批作業(如超大規模 ETL)。批處理:Flink 1.12+ 實驗性,1.13+ 生產可用。

2. 使用場景

? Pipelined Shuffle
? 場景:實時流處理(如實時風控、監控告警)。
? 優勢:低延遲,適合對實時性要求高的場景。
? 缺點:資源占用高,可能因反壓導致內存積壓。

? Blocking Shuffle
? 場景:離線批處理(如 TPC-DS 分析任務)。
? 優勢:資源利用率高,適合大規模數據批處理。
? 缺點:磁盤 I/O 開銷大,性能較低。

? Hybrid Shuffle
? 場景:批處理作業(尤其資源波動或數據傾斜場景)。
? 優勢:結合內存和磁盤,減少 I/O 負載,提升資源利用率(如 TPC-DS 性能提升 7.2%~18.74%)。
? 缺點:需權衡落盤策略(全落盤容錯性好,選擇性落盤性能更優)。


3. Flink 版本支持

Shuffle 類型流處理版本批處理版本
Pipelined Shuffle從早期版本支持(默認)不適用
Blocking Shuffle不適用從早期版本支持
Hybrid Shuffle不適用Flink 1.16 引入

4. 說明

? Hybrid Shuffle 的演進
? Flink 1.16 首次引入,1.17 優化了廣播數據和資源調度。
? 支持兩種落盤策略:全落盤(容錯性好)和選擇性落盤(性能優)。
? 流批融合趨勢:Hybrid Shuffle 是 Flink 流批一體化的關鍵,未來可能擴展至流處理場景。

5.補充說明:

  1. 流處理當前默認:仍為 Pipelined Shuffle(截至 Flink 1.17)。
  2. 批處理演進
    ? Flink 1.13 默認 Blocking Shuffle(Hash 實現)。
    ? Hybrid Shuffle 未來可能成為批處理默認選項。
  3. 特殊場景
    ? RSS 適用于云原生和大規模集群。
    ? Sort-Merge Shuffle 解決高并發下的穩定性問題。
  4. Broadcast/Rebalance/hash Partition 常用場景
    邏輯分區策略(如 keyBy、broadcast),底層仍依賴上述 Shuffle 實現

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/76406.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/76406.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/76406.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Git使用與管理

一.基本操作 1.創建本地倉庫 在對應文件目錄下進行: git init 輸入完上面的代碼,所在文件目錄下就會多一個名為 .git 的隱藏文件,該文件是Git用來跟蹤和管理倉庫的。 我們可以使用 tree 命令(注意要先下載tree插件&#xff09…

計算機視覺——深度學習圖像處理中目標檢測平均精度均值(mAP)與其他常用評估指標

概述 平均精度均值(mAP)是目標檢測領域中最為流行且復雜的重要評估指標之一。它廣泛用于綜合總結目標檢測器的性能。許多目標檢測模型會輸出類似以下的參數結果: Average Precision (AP) [ IoU0.50:0.95 | area all | maxDets100 ] 0.3…

C語言中單鏈表操作:查找節點與刪除節點

一. 簡介 前面學習了C語言中創建鏈表節點,向鏈表中插入節點等操作,文章如下: C語言中單向鏈表:創建節點與插入新節點-CSDN博客 本文繼續學習c語言中對鏈表的其他操作,例如在鏈表中查找某個節點,刪除鏈表…

WePY 框架:小程序開發的“Vue式”利器!!!

WePY 框架:小程序開發的“Vue式”利器 🚀 哈嘍,大家好!👋 今天我們要聊聊一個在微信小程序開發中大放異彩的框架——WePY!它是什么?有什么特點?為啥值得一試?別急&#…

什么是微前端?有什么好處?有哪一些方案?

微前端(Micro Frontends) 微前端是一種架構理念,借鑒了微服務的思想,將一個大型的前端應用拆分為多個獨立、自治的子應用,每個子應用可以由不同團隊、使用不同技術棧獨立開發和部署,最終聚合為一個整體產品…

【家政平臺開發(33)】庫存管理模塊開發實戰:從基礎搭建到智能管控

本【家政平臺開發】專欄聚焦家政平臺從 0 到 1 的全流程打造。從前期需求分析,剖析家政行業現狀、挖掘用戶需求與梳理功能要點,到系統設計階段的架構選型、數據庫構建,再到開發階段各模塊逐一實現。涵蓋移動與 PC 端設計、接口開發及性能優化,測試階段多維度保障平臺質量,…

Mysql個人筆記

Mysql個人筆記 sql基礎書寫規則和種類種類書寫規則注釋規則啟動 DDL數據類型數據庫的操作useshowcreatedrop 表的操作useshowcreate創建表復制表 dropalter Mysql的存儲引擎 DMLselectselect語句like(謂詞)where聚合函數:關于nullgroup byexi…

【重裝系統】大白菜自制U盤裝機,備份C盤數據,解決電腦啟動黑屏/藍屏

1. 準備 U 盤 U 盤容量至少 8G,備份 U 盤的數據(后期會格式化) 2. 從微軟官網下載操作系統鏡像 https://www.microsoft.com/zh-cn/software-download/windows11 3. 下載安裝大白菜 https://www.alipan.com/s/33RVnKayUfY 4. 插入 U 盤&#…

各類神經網絡學習:(十)注意力機制(第2/4集),pytorch 中的多維注意力機制、自注意力機制、掩碼自注意力機制、多頭注意力機制

上一篇下一篇注意力機制(第1/4集)待編寫 一、pytorch 中的多維注意力機制: 在 N L P NLP NLP 領域內,上述三個參數都是 向量 , 在 p y t o r c h pytorch pytorch 中參數向量會組成 矩陣 ,方便代碼編寫。…

uni-app初學

文章目錄 1. pages.json 頁面路由2. 圖標3. 全局 CSS4. 首頁4.1 整體框架4.2 完整代碼4.3 輪播圖 swiper4.3.1 image 4.4 公告4.4.1 uni-icons 4.5 分類 uni-row、uni-col4.6 商品列表 小程序開發網址: 注冊小程序賬號 微信開發者工具下載 uniapp 官網 HbuilderX 下…

VBA將Word文檔內容逐行寫入Excel

如果你需要將Word文檔的內容導入Excel工作表來進行數據加工,使用下面的代碼可以實現: Sub ImportWordToExcel()Dim wordApp As Word.ApplicationDim wordDoc As Word.DocumentDim excelSheet As WorksheetDim filePath As VariantDim i As LongDim para…

MySQL運行一段時間后磁盤出現100%讀寫

MySQL運行一段時間后磁盤出現100%讀寫的情況,可能是由多種原因導致的,以下是一些常見原因及解決方法: 可能的原因 1. 磁盤I/O壓力過大[^0^]:數據量過大,數據庫查詢和寫入操作消耗大量I/O資源。索引效率低&#xff0c…

【RabbitMQ】延遲隊列

1.概述 延遲隊列其實就是隊列里的消息是希望在指定時間到了以后或之前取出和處理,簡單來說,延時隊列就是用來存放需要在指定時間被處理的元素的隊列。 延時隊列的使用場景: 1.訂單在十分鐘之內未支付則自動取消 2.新創建的店鋪,…

Linux筆記之Ubuntu系統設置自動登錄tty1界面

Ubuntu22.04系統 編輯getty配置文件 vim /etc/systemd/system/gettytty1.service.d/override.conf如果該目錄或者文件不存在,進行創建。 在override.conf文件中進行編輯: [Service] ExecStart ExecStart-/sbin/agetty --autologin yourusername --no…

C++程序詩篇的靈動賦形:多態

文章目錄 1.什么是多態?2.多態的語法實現2.1 虛函數2.2 多態的構成2.3 虛函數的重寫2.3.1 協變2.3.2 析構函數的重寫 2.4 override 和 final 3.抽象類4.多態原理4.1 虛函數表4.2 多態原理實現4.3 動態綁定與靜態綁定 5.繼承和多態常見的面試問題希望讀者們多多三連支…

算法訓練之動態規劃(三)

???~~~~~~歡迎光臨知星小度博客空間~~~~~~??? ???零星地變得優秀~也能拼湊出星河~??? ???我們一起努力成為更好的自己~??? ???如果這一篇博客對你有幫助~別忘了點贊分享哦~??? ???如果有什么問題可以評論區留言或者私信我哦~??? ?????? 個…

$_GET變量

$_GET 是一個超級全局變量,在 PHP 中用于收集通過 URL 查詢字符串傳遞的參數。它是一個關聯數組,包含了所有通過 HTTP GET 方法發送到當前腳本的變量。 預定義的 $_GET 變量用于收集來自 method"get" 的表單中的值。 從帶有 GET 方法的表單發…

jQuery多庫共存

在現代Web開發中,項目往往需要集成多種JavaScript庫或框架來滿足不同的功能需求。然而,當多個庫同時使用時,可能會出現命名沖突、功能覆蓋等問題。幸運的是,jQuery提供了一些機制來確保其可以與其他庫和諧共存。本文將探討如何實現…

MySQL 中的聚簇索引和非聚簇索引有什么區別?

MySQL 中的聚簇索引和非聚簇索引有什么區別? 1. 從不同存儲引擎去考慮 在MySIAM存儲引擎中,索引和數據是分開存儲的,包括主鍵索引在內的所有索引都是“非聚簇”的,每個索引的葉子節點存儲的是數據記錄的物理地址(指針…

Java從入門到“放棄”(精通)之旅——啟航①

🌟Java從入門到“放棄 ”精通之旅🚀 今天我將要帶大家一起探索神奇的Java世界!希望能幫助到同樣初學Java的你~ (??????)?? 🔥 Java是什么?為什么這么火? Java不僅僅是一門編程語言,更…