Flink中的 BinaryRowData 以及大小端

背景

本文基于 Flink 1.17.0
寫此文章的目的是為了說明 Flink 堆內和堆外內存以及 內部 BinaryRowData 行處理的優化。

分析

堆內和堆外內存

跟Spark的內存管理不一樣,Flink 中的堆內和堆外一直都是存在的。
堆內內存(JVM Heap)存儲用戶對象和Flink 框架的運行時數據,而堆外內存(Off-heap Memory)包括用于網絡通信的直接內存(Direct Memory)和用于第三方庫(如RocksDB)的堆外內存(offheap Memory)。
分別可以通過 MemorySegmentFactory 的 wrap allocateUnpooledOffHeapMemory allocateOffHeapUnsafeMemory 方法來進行分配對應的堆內,直接內存以及堆外內存。無論是堆內還是堆外內存都是用 MemorySegment 來承載的。

BinaryRowData

關于該BinaryRowData的作用和Spark中一樣

  1. 減少GC壓力
  2. 不影響正常的數據操作,減少了數據存儲內存,精確計算內存的使用情況
  3. 減少了序列化和反序列化的的消耗

Byte大小端

MemorySegment 類中,也存在中大小端的判斷:

 private static final boolean LITTLE_ENDIAN =(ByteOrder.nativeOrder() == ByteOrder.LITTLE_ENDIAN);

在Flink 中,數據需要經過序列化和反序列化才能在網絡中傳輸或持久化存儲。如果數據源的字節序與Flink 運行的機器的字節序不一致,就可能出現解析錯誤。通過區分大端和小端,Flink 能夠正確地進行轉換,確保數據的一致性。

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

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

相關文章

HTTP/3.0:網絡通信的技術革新與性能飛躍

🌐 HTTP/3.0:網絡通信的技術革新與性能飛躍 Refer:PPP PRIVATE NETWORK? 2 企業級虛擬以太網接入綜合解決方案介紹 🚀 引言:悄然來臨的網絡革命 你是否曾期待視頻加載卡頓成為過去?YouTube 已經邁出了重…

【golang學習筆記 gin 】1.1 路由封裝和mysql 的使用封裝

安裝gin go get -u github.com/gin-gonic/gin go get -u github.com/go-sql-driver/mysql創建相關目錄 gotest->conifg->database.go->redis.go->controller ->index.go->model->user.go->router->router.gomain.go 創建用戶模型 package model imp…

SQL 層面行轉列

背景:如果對一些評論、點贊、收藏等互動數據,使用了按照 type 分類存儲,num 也是對應的。這樣如果創建一個帖子,那么就會出現 3 行數據(type 不同,num 不同,對應評論點贊和收藏)&…

langchain4j筆記篇(陽哥)

一 概述1.1 概述langchain4j:langchain for java1.2 作用langchain4j的目標是簡化將LLM集成到java應用程序中的過程。二 案例簡單helloworld2.1 大模型調用三件套1.阿里百煉平臺的通義模型: https://bailian.console.aliyun.com/2獲取api-key&#x…

有鹿機器人的365天奇幻日記:我在景區當掃地僧

第一章 古建守護者:2cm的極致藝術琉璃瓦下的秘密記得那是個晨霧繚繞的清晨,我接到首個重要任務:清掃明代琉璃碑亭。這里的每塊地磚都是文物,傳統清潔工具根本不敢靠近。每天以2cm的精準貼邊沿碑座作業,如今我每周都要為…

Objective-C方法參數標簽怎么設置

在Objective-C中,方法名稱可以通過幾個標簽名稱組成,這是跟C/C中完全不一樣的地方。每個標簽都是字段冒號的寫法,冒號后面是方法的參數,參數包括參數類型和參數變量,其中參數類型要用括號括起。方法參數的標簽是通過在…

20250910_《SQL Server 數據庫事務日志定期清理方案(精簡優化版)》以10.1.1.31服務器的gtp-default數據庫為例

《SQL Server 數據庫事務日志定期清理方案(精簡優化版)》 一、前提條件 數據庫 gtp-default 已設置為完整恢復模式 (FULL)。 每天凌晨02:00執行完整備份,保證日志備份可用。 SQL Server Agent 已啟用。 作業所有者為 sa,具有 sysadmin 權限。 Agent 服務賬號 NT Service\S…

實習項目包裝--HTTP 協議和 Web API

好的,完全沒問題!你問到了一個非常核心且基礎的知識領域,這是現代Web開發和幾乎所有網絡應用的基石。我們暫別嵌入式系統,專門來上一堂關于 HTTP 協議和 Web API 的詳細課程。 我會從最根本的概念講起,逐步深入到你所…

ICCV-2025 | 中科院自動化所世界模型助力具身導航!NavMorph:連續環境中的視覺語言導航自演化世界模型

作者:Xuan Yao1,2^{1,2}1,2, Junyu Gao1,2^{1,2}1,2, Changsheng Xu1,2,3^{1,2,3}1,2,3單位:1^{1}1中科院自動化所多模態人工智能系統國家重點實驗室,2^{2}2中國科學院大學人工智能學院,3^{3}3鵬城實驗室論文標題:NavM…

【ARDUINO】ESP8266的AT指令返回內容集合

一、基礎測試指令(確認模塊通信) 1. AT(測試模塊是否響應) 功能:檢測ESP8266與控制器(如Arduino)的串口通信是否正常。 返回內容: 成功:OK(無額外數據,僅確認通信正常) 失敗:無返回(可能是波特率不匹配、接線錯誤) 示例:發送:AT 返回: OK二、Wi-Fi模式配置指…

Mockoon:開源免費的本地Mock服務工具,提升前后端聯調效率

你有沒有過這種經歷?做前端開發時,后端同事的接口還沒寫完,你這邊要調頁面數據,只能對著空控制臺發呆?要么手動寫個 JSON 文件當假數據,改一次數據就得重新保存文件、刷新頁面;要么用在線 Mock …

【Mysql|第一篇】Mysql的安裝與卸載、Navicat工具的使用

一、Mysql的安裝與卸載: 1、查看是否安裝過mysql: (1)cmd中輸入mysql看是否有顯式提醒 (2)右擊此電腦,選擇管理,在左側欄中找到服務,查看是否有與mysql相關的 2、卸載的…

貪心算法應用:流行病干預策略問題詳解

Java中的貪心算法應用:流行病干預策略問題詳解 貪心算法是一種在每一步選擇中都采取當前狀態下最優的選擇,從而希望導致全局最優解的算法策略。在流行病干預策略問題中,貪心算法可以有效地幫助我們做出資源分配決策,以達到最優的防…

git刪除最近一次提交包括歷史記錄。

方法一:刪除最近的一次提交(最常見) 如果你只是想撤銷最后一次提交,這是最簡單的方法。在本地刪除提交 使用 git reset --hard 命令,將你的本地分支回退到上一次提交。Bashgit reset --hard HEAD^HEAD^ 指的是 HEAD 的…

前端拖拽功能實現全攻略

前端拖拽功能實現指南 設計一個拖拽組件確實需要考慮不少細節。下面我為你梳理了從核心思路、關鍵實現到注意事項的完整方案,并用表格對比了 Vue 和 React 的實現差異,希望能幫你全面掌握。 🧠 一、核心設計思路 一個拖拽組件的核心在于感…

ASP.NET MVC 連接 MySQL 數據庫查詢示例

為您創建一個完整的 ASP.NET MVC 應用程序,演示如何通過點擊按鈕連接 MySQL 數據庫并查詢數據表。 完整實現步驟 1. 首先安裝必要的 NuGet 包 在項目中安裝以下 NuGet 包: MySql.Data Dapper(可選,用于簡化數據訪問&#xff0…

合理安排時間節點,避免影響正常生產——制造企業軟件系統上線的關鍵考量

在制造企業的發展中,引入新的軟件系統是提升管理效率、優化業務流程的重要舉措。然而,軟件系統的上線過程如果安排不當,很可能會對企業的正常生產造成負面影響。作為一名制造企業的行政經理,在軟件選型和推進使用的過程中&#xf…

【一包通刷】晶晨S905L(B)/S905L2(B)/S905L3(B)-原機安卓4升級安卓7/安卓9-通刷包

【一包通刷】晶晨S905L(B)/S905L2(B)/S905L3(B)-原機安卓4升級安卓7/安卓9-通刷固件包線刷方法:1、準備好一根雙公頭USB線刷刷機線,長度30-50CM長度最佳,同時準備一臺電腦;2、電腦上安裝好刷機工…

Vite開發:從入門到精通

序章:構建之道現代前端的破局者前端發展簡史:從 Grunt、Gulp、Webpack 到 Vite構建工具的本質與未來為什么是 Vite?——新時代的構建哲學本書閱讀導覽與學習路徑第一篇 入門啟蒙識得 Vite 真面目第1章 Vite 初識什么是 Vite?設計理…

Spring事件監聽機制(二)

接著之前的事件監聽機制實現,我們可以進一步優化。從以下兩個方面:1.使用EventListener注解Configuration public class TestListener2 {public static void main(String[] args) {AnnotationConfigApplicationContext context new AnnotationConfigApp…