怎么提高Flink的执行性能(代码方面)
来源:千锋教育
发布人:
2022-07-28
推荐
在线提问>>
怎么提高Flink的执行性能(代码方面)
通用的优化方式4. 一些基数较少的并且本身较长维度可以采用数据字典的方式减少网络传输及内存占用、gc开销。
数据类型和序列化Flink支持java、scala基本数据类型,以及java Tuples、scala Case Class、Flink Value,对于这些数据类型,flink会采用自身的序列化反序列化器去做序列化操作,对于其他数据类型,flink会采用kyro方式序列化,kyro序列化方式效率会比flink自带的方式低很多。因此在数据序列化方面我们可以做如下工作
3. 如果使用了lambda或者泛型的话,显式的指定类型信息让flink类型提取系统识别到以提升性能。
多组相同keyby可使用DataStreamUtils在多组keyby的场景可以采用DataStreamUtils.reinterpretAsKeyedStream的方式避免多次shuffle操作
尽量减少状态的大小3. checkpoint频率不宜过高,超时时间不要太长,可以异步化的地方尽量异步化