亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spark中如何以序列化方式調優

發布時間:2021-12-16 11:39:58 來源:億速云 閱讀:147 作者:小新 欄目:大數據

小編給大家分享一下Spark中如何以序列化方式調優,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

在任何分布式應用中序列化都扮演者一個重要的角色。序列化過程非常慢的或者消耗大量字節的序列化格式,都是會巨大的減緩計算速度。通常這是優化spark應用程序的第一件事情。Spark目標是在你的操作中直接便利的使用java類型和性能找到一個平衡點。目前,spark提供兩種序列化的庫:

1.Java serialization:默認情況下,spark使用Java的 ObjectOutputStream框架,序列化對象。可以應用于任何繼承了java.io.Serializable的自創建類。你也可以通過更密切的繼承java.io.Externalizable,來控制你自己的序列化方式的性能。JAVA的序列化雖然靈活,但是通常是非常慢的,同時針對很多類會導致大的序列化格式。

2.Kryo serialization:Spark也可以用 Kryo library (version 2) 來加速序列化。Kryo比java序列化更快,更緊湊(往往搞出10倍),但是并不支持所有的序列化類型,為了達到最佳的性能需要提前注冊你在你的程序中使用的類。

你可以通過使用SparkConf更改spark的序列化方式。這個設置不僅影響到worker間傳輸的Shuffle數據也會序列化準備寫到磁盤的RDD。Kryo不是默認序列化方式的主要原因是需要自定義注冊。我們建議使用它在任何網絡密集型應用程序中。

Spark會自動的包括Kryo,針對大多數通用的scala類。

向Kryo注冊你的類,可以通過registerKryoClasses 方法

val conf = new SparkConf().setMaster(...).setAppName(...)

conf.registerKryoClasses(Array(classOf[MyClass1], classOf[MyClass2]))

val sc = new SparkContext(conf)

    https://github.com/EsotericSoftware/kryo 鏈接文檔描述了更先進的kryo注冊選項,如添加自定義序列化代碼。

如果你的對象非常大,你需要增加spark.kryoserializer.buffer。這個值要大于你要序列化的最大的對象。

最后,如果不向Kyro注冊你的自定義類型,Kyro也會繼續工作,但是他會保存你每個對象的類全名,這非常浪費。

關于spark對Kyro的配置的支持,請參考。

http://spark.apache.org/docs/1.6.0/configuration.html#compression-and-serialization

Spark中如何以序列化方式調優

以上是“Spark中如何以序列化方式調優”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

星座| 遂昌县| 彭山县| 昆山市| 清原| 扎囊县| 根河市| 阿鲁科尔沁旗| 花莲县| 吴江市| 郸城县| 望谟县| 木里| 密云县| 喀喇沁旗| 东阳市| 瓦房店市| 武安市| 达日县| 东乌| 慈利县| 万年县| 辽阳县| 岐山县| 上饶县| 河东区| 江安县| 阿鲁科尔沁旗| 葫芦岛市| 类乌齐县| 察隅县| 遵义县| 肥东县| 永川市| 宝坻区| 津市市| 沙田区| 呈贡县| 英德市| 吕梁市| 松潘县|