apache-flink - Flink 如何处理托管状态的序列化?

标签 apache-flink avro flink-streaming

Flink 以什么格式保存算子的托管状态(用于检查点或逻辑算子之间的通信(即沿着作业图的边缘)?

documentation读取

Standard types such as int, long, String etc. are handled by serializers we ship with Flink. For all other types, we fall back to Kryo.

Flink 附带的序列化器是什么?

背景:我正在考虑从 JSON 切换到使用 AVRO 将数据摄取到我的源中,并将数据发送到我的接收器。然而,Avro 创建的自动生成的 POJO 类相当嘈杂。因此,在作业图(用于 Flink 运算符之间的通信)中,我正在考虑使用像 Avro 这样的二进制序列化格式是否有任何性能优势。可能不会对性能产生重大影响(因为 Flink 也可能使用优化的格式),它只需在类型兼容性方面做更多的工作。但我只是想获得更多有关它的信息。

最佳答案

Flink 对基本类型、POJO 和案例类使用自己的内置序列化框架,并且其设计非常高效。 Avro 在模式演化方面确实具有优势,这在考虑 Flink 的保存点时是相关的。关于该主题,请参阅this message on the user mailing list .

关于apache-flink - Flink 如何处理托管状态的序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47933102/

相关文章:

java - avro union的json编码

apache-spark - 在 Spark SQL 中使用 Avro 模式和 Parquet 格式进行读/写

java - Avro 和 Kafka 通过使用 SchemaBuilder

java - Flink 按字段 id 对记录进行分组的最佳方式

apache-kafka - Flink+Kafka重置检查点和偏移量

apache-flink - Flink中为什么DataStream不支持聚合

scala - Flink 中滑动窗口的性能不佳

machine-learning - Flink 中序列化复杂模型的最佳实践

apache-flink - 在 Flink 中的运算符(operator)之间共享状态

apache-flink - 如何配置 Flink 以将 S3 用于后端状态和检查点