下麵列出了最受歡迎的火花優化技術:
1。數據序列化
在這裏,一個內存中的對象轉換為另一種格式可以存儲在一個文件或通過網絡發送。這提高了分布式應用程序的性能。
2。緩存
這是一種有效的技術,需要更多數據時使用。緩存()和持續()方法應用於這種技術。這些方法用於存儲計算抽樣的數據集,DataFrame。但是,緩存()將其存儲在內存和堅持()將其存儲在用戶定義的存儲水平。
這些方法可以幫助降低成本和節約時間,重複計算。
緩存和持續的方法這將數據集存儲到內存當需求出現。他們是有用的,當你想要存儲一個小數據集的程序中經常使用。RDD.Cache()總是會將數據存儲在內存中。RDD.Persist()允許部分數據存儲到內存和磁盤上的部分。緩存技術提供了有效的優化在火花持續和緩存方法。
3所示。數據結構優化
我們可以減少內存消耗,同時使用火花,通過調整某些Java特性可能會增加開銷。這是可能在以下方麵:
4所示。垃圾收集優化
為優化垃圾收集器,G1和GC必須用於火花運行應用程序。G1收集器管理日益增長的堆。根據生成的日誌GC調優是至關重要的,來控製應用程序的意想不到的行為。但在這之前,您需要修改和優化程序的邏輯和代碼。
G1GC有助於減少執行時間的工作通過優化流程之間的暫停時間。
這是一個最好的優化技術在火花時,有一個巨大的垃圾收集。
5。內存管理
用於存儲的內存計算,如連接,打亂排序、聚合,叫做執行內存。用於存儲內存緩存和處理數據存儲在集群。記憶都使用一個統一的地區。
當執行內存使用,存儲內存可以使用空間。同樣的,當存儲內存空閑,執行內存可以利用的空間。這是其中一個最有效的優化技術。