扫一扫加入大数据公众号和技术交流群,了解更多大数据技术,还有免费资料等你哦
优化点一:序列化
对于分布式计算来讲,数据的传输效率非常重要。好的序列化框架可以通过较低 的序列化时间和较低的内存占用大大提高计算效率和作业稳定性。在数据序列化上,Flink 和 Spark 采用了不同的方式;Spark 对于所有数据默认采用 Java 原生序列化方式,用户也可以配置使用 Kryo;而 Flink 则是自己实现了一套高效率的序列化方法。
序列化方式
首先说一下 Java 原生的序列化方式,这种方式的好处是比较简单通用,只要对象实现了 Serializable 接口即可;缺点就是效率比较低,而且如果 用户没有指定 serialVersionUID 的话,很容易出现作业重新编译后,之前的数据无法反序列化出来的情况(这也是 Spark Streaming Checkpoint 的一个痛点ÿ