spark性能调优之四:kryo序列化

spark支持使用kryo序列化机制。kryo序列化机制,比默认的java序列化机制,速度要快,序列化后的数据要更小,大概是java序列化机制的1/10,所以kryo序列化优化后,可以让网络传输的数据变少,在集群中耗费的内存资源大大减少。

kryo序列化机制,一旦启用以后,会生效的几个地方:

1、算子函数中使用到的外部变量

2、持久化RDD时进行序列化,StorageLevel.MEMORY_ONLY_SER

3、shuffle

那么如何设置kryo序列化呢?

第一步,在sparkconf中设置:SparkConf.set("spark.serializer","org.apache.spark.serializer.KryoSerializer")

第二步,注册你使用到的,需要通过kryo序列化的一些自定义类,SparkConf.registerKryoClasses(),项目中使用SparkConf.set("spark.serializer","org.apache.spark.serializer.KryoSerializer").registerKryoClasses(new  Class[]{CategorySortKey.class})

原文地址:https://www.cnblogs.com/jinniezheng/p/8548251.html