美文网首页
Flink数据类型和序列化

Flink数据类型和序列化

作者: 程序员小白成长记 | 来源:发表于2021-09-19 11:24 被阅读0次

    一、为什么Flink需要自定义序列化框架

    flink运行在JVM之上,将大量的数据存储在内存中,就会面临JVM存在的问题:
    1)Java对象的存储密度比较低
    2)fullGC的性能问题
    3)OOM造成的稳定性的问题
    为了解决这些问题,自己实现一个内存管理,用自定义的内存池进行内存的分配和回收,这样就引出了序列化,是将序列化后的对象存储在内存中的。
    开源的序列化框架有很多,但是Flink定制自己的序列化框架的好处:
    1)Flink对于类型信息了解的越多,可以在运行之前完成类型检查的操作,避免在运行时抛出错误
    2)知道数据类型可以选择更好的序列化方式,更好的数据布局,减少内存的存储空间
    3)可以直接进行二进制的操作

    二、Flink的数据类型

    image.png image.png

    三、Flink序列化过程

    根据不同的类型获取不同的序列化器,也可以自定义序列化器

    image.png image.png

    四、Flink序列化的最佳实践

    最常见的场景

    • 注册子类型
    • 注册自定义序列化器
    • 添加类型提示
    • 手动创建TypeInformation

    五、参考文档

    【1】Flink 数据类型与序列化 PPT
    【2】【Apache Flink 进阶教程 视频教程】5、Flink 数据类型和序列化

    相关文章

      网友评论

          本文标题:Flink数据类型和序列化

          本文链接:https://www.haomeiwen.com/subject/ihbugltx.html