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})

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM