日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Spark 配置Kryo序列化机制注意细节

發布時間:2025/1/21 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spark 配置Kryo序列化机制注意细节 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、Spark 的序列化

序列化
Spark 是一個高性能、分布式的、基于內存計算的計算引擎,Spark 集群中包含多個節點,各節點之間要進行通信(比如數據傳輸,Spark 通過 RPC 進行節點間的通信),因而必定存在序列化(對象轉字節數組)和反序列化(字節數組轉對象)。


二、Java Serialization 和 Kryo Serialization

Spark 目前支持兩種序列化機制:java native serialization 和 kryo serialization,默認使用的是Java native serialization。兩者的區別:

類別優點缺點備注
java native serialization兼容性好、和scala更好融合序列化性能較低、占用內存空間大(一般是Kryo Serialization 的10倍)默認的serializer
Kryo Serialization序列化速度快、占用空間小(即更緊湊)不支持所有的Serializable類型、且需要用戶注冊要進行序列化的類classshuffle的數據量較大或者較為頻繁時建議使用

三、Spark 中使用 Kryo Serialization

要在Spark 中使用 Kryo 完成序列化和反序列化,需要完成 3.1 和 3.2 兩樣配置:

3.1 將配置項spark.serializer設置為

關于配置項的設置優先級可以參考博客:https://www.jianshu.com/p/15cd9844c5a1

org.apache.spark.serializer.KryoSerializer
可以在配置文件spark-default.conf中添加該配置項(全局生效),比如:

spark.serializer org.apache.spark.serializer.KryoSerializer

或者在業務代碼中通過SparkConf進行配置(針對當前application生效),比如:

val spark = SparkSession.builder().master("local[*]").appName("test").getOrCreate()val conf = new SparkConfconf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")

又或者在spark-shell、spark-submit腳本中啟動,可以在命令中加上:

--conf spark.serializer=org.apache.spark.serializer.KryoSerializer

3.2 注冊自定義類(非必須,但是強烈建議做)

...... conf.registerKryoClasses(Array(classOf[Test1], classOf[Test2])) // 其中Test1.java 和 Test2.java 是自定義的類

如果是scala類Test1(scala中的trait就相當于java中的接口):

class Test1 extends Serializable {...... }

如果是java類Test2:

public class Test2 implements Serializable {...... }

注意:雖說該步不是必須要做的(不做Kryo仍然能夠工作),但是如果不注冊的話,Kryo會存儲自定義類中用到的所有對象的類名全路徑,這將會導致耗費大量內存。

3.3 配置 spark.kryoserializer.buffer

如果要被序列化的對象很大,這個時候就最好將配置項spark.kryoserializer.buffer 的值(默認64k)設置的大些,使得其能夠hold要序列化的最大的對象。

參考鏈接:https://www.jianshu.com/p/68970d1674fa

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Spark 配置Kryo序列化机制注意细节的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。