日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

spark调优1

發布時間:2025/7/14 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spark调优1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

https://spark.apache.org/docs/1.2.1/tuning.html

Data Serialization

spark現在提供Java serialization和Kryo serialization庫

Java serialization比較慢,Kryo serialization比較快

Memory Tuning

Determining Memory Consumption

衡量你的數據集消耗內存量最好的方式是創建RDD,并放入cache中,通過查看你的driver程序SparkContext logs來得出結論。

Tuning Data Structures

降低內存消耗的第一種方式是避免使用增加開銷的java特性,例如基于指針的數據結構和封裝的對象。有幾種方法來避免:

1.將你的數據結構設計為對象的數組,或者原始類型,而不是java或者scala集合類(例如HashMap)

fastutil庫提供原始數據類型的方便集合類,并且這些類與java標準庫兼容。(http://fastutil.di.unimi.it/)

2.如果可以的話,避免使用有很多小對象的內嵌數據結構

3.考慮使用數字id或者枚舉對象來代替string作為key

4.如果給spark使用的內存少于32g,設置JVM flag -XX:+UseCompressedOops來使指針的大小從原來的8個byte變成4個byte.

你可以在spark-env.sh里添加這個參數。

Serialized RDD Storage

當你的對象通過調優高效地存儲后仍然很大,一個簡單的減少內存使用的方式是以序列化格式的方式存儲對象,使用 RDD persistence API中序列化的等級來指定,例如MEMORY_ONLY_SER。

spark將每個RDD塊存儲為一個大的byte數組。將存儲的數據序列化唯一的缺點是訪問時間變慢了,這應歸于服務器一直在忙碌于每個對象的反序列化。

如果你想在內存中以序列化格式保存數據,我們極力地推薦使用Kryo庫,因為這會產生比java序列化小很多的文件大小。(當然會比沒有序列化的原生java object更小)


Garbage Collection Tuning


轉載于:https://my.oschina.net/forrest420/blog/502460

總結

以上是生活随笔為你收集整理的spark调优1的全部內容,希望文章能夠幫你解決所遇到的問題。

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