【发布时间】:2021-02-17 08:52:06
【问题描述】:
我们的一些 POJO 包含来自 java.time API 的字段(LocalDate、LocalDateTime)。当我们的管道处理它们时,我们可以在日志中看到以下信息:
org.apache.flink.api.java.typeutils.TypeExtractor - Class class java.time.LocalDate cannot be used as a POJO type because not all fields are valid POJO fields, and must be processed as GenericType. Please read the Flink documentation on "Data Types & Serialization" for details of the effect on performance.
据我了解,LocalDate 不能归类为 POJO,因此 flink 不使用 POJO 序列化程序,而是退回到效率较低的 Kryo。然而,由于 1.9.0 版本的 flink 为 java.time 类提供了专用的序列化器(例如LocalDateSerializer),所以我希望这些序列化器可以在这里完成工作,从而允许 POJO 序列化器用于我们的类。不是这样吗?如果是,是否有任何性能影响?如果不是,这种情况的最佳解决方案是什么?
在项目中,我们使用 Flink 1.11 和 Java 1.8。
【问题讨论】:
标签: java apache-flink