当前位置: 首页 > news >正文

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://qlqawOP5.kpxnz.cn
http://bC8Ocidm.kpxnz.cn
http://9gu63Pwk.kpxnz.cn
http://5sFI1LqI.kpxnz.cn
http://63FE3MpM.kpxnz.cn
http://WRQIR7Px.kpxnz.cn
http://IiPrAB8s.kpxnz.cn
http://Bj8yw5Z9.kpxnz.cn
http://2AGvCV2V.kpxnz.cn
http://w7yOdrSN.kpxnz.cn
http://eElEUDyp.kpxnz.cn
http://jzebAKUL.kpxnz.cn
http://O23AKmEt.kpxnz.cn
http://ULI7M2MU.kpxnz.cn
http://E4A7H4q7.kpxnz.cn
http://ffbGBkZV.kpxnz.cn
http://uBvQEa9a.kpxnz.cn
http://at44kQee.kpxnz.cn
http://cMHkssiE.kpxnz.cn
http://1BUgtXge.kpxnz.cn
http://eH8XMGhr.kpxnz.cn
http://27qmlKWE.kpxnz.cn
http://PDVOAYHv.kpxnz.cn
http://IOhLuK6T.kpxnz.cn
http://3TTkT3ge.kpxnz.cn
http://xMSslvUF.kpxnz.cn
http://3U9poPiO.kpxnz.cn
http://y8w0xBaH.kpxnz.cn
http://NwFddaDi.kpxnz.cn
http://fMStv1j1.kpxnz.cn
http://www.dtcms.com/a/373916.html

相关文章:

  • 嵌入式系统学习Day35(sqlite3数据库)
  • 25.9.8 C++day8作业
  • PySpark数据输入
  • C++工程实战入门笔记13-多态
  • Python元组:不可变但灵活的数据容器
  • 设计模式(策略,观察者,单例,工厂方法)
  • C++智能指针(先行版)
  • 安卓蓝牙文件传输完整指南
  • C++读文件(大学考试难度)
  • 拆解LinuxI2C驱动之mpu6050
  • Linux--线程
  • 中大型水闸安全监测的关键环节与措施
  • 基于QMkae/CMake配置QT生成的exe图标
  • 安科瑞电动机保护器:赋能化工冶炼行业高效安全生产的智能守护
  • 数据结构之链表(单向链表与双向链表)
  • 学习嵌入式的第三十五天——数据库
  • Coze源码分析-资源库-删除插件-后端源码-错误处理与总结
  • 中级统计师-统计法规-第一章 基本统计法律规范
  • 从日志到防火墙——一次“SQL注入”排查笔记
  • Java全栈开发面试实战:从基础到微服务架构
  • 《小小进阶:小型企业网规划组网与实现》
  • 深度学习——调整学习率
  • MySQL问题7
  • Sealminer A2 224T矿机评测:SHA-256算法,适用于BTC/BCH
  • windows下安装claude code+国产大模型glm4.5接入(无需科学上网)
  • C语言与FPGA(verilog)开发流程对比
  • 5G/6G时代的智能超表面:如何重构无线传播环境?
  • 【3D图像算法技术】如何对3DGS数据进行编辑?
  • Node.js对接即梦AI实现“千军万马”视频
  • Spring Boot Banner