Flink以什么格式保持运营商的管理状态(用于检查点或逻辑运算符之间的通信(即沿着作业图的边缘)?
标准类型(如int,long,String等)由Flink随附的序列化程序处理。对于所有其他类型,我们回到Kryo。
Flink附带的那些序列化器是什么?
背景:我正在考虑从JSON切换到使用AVRO将数据提取到我的Sources中,并将数据发送到我的Sinks。但是,由Avro创建的自动生成的POJO类相当嘈杂。因此在Job图中(对于Flink运算符之间的通信)我正在考虑使用像Avro这样的二进制序列化格式是否有任何性能优势。可能没有重大的性能影响(因为Flink也可能使用优化的格式),并且只需要在类型兼容性方面做得更多。但我只想获得更多相关信息。
Flink使用自己的内置序列化框架来实现基本类型,POJO和案例类,并且它的设计非常高效。 Avro确实在模式演化领域具有优势,这在考虑Flink的保存点时是相关的。关于该主题,请参阅this message on the user mailing list。