Tungsten大幅度提升Spark效能

banq發表於2015-04-29
Tungsten專案能夠大幅度提高Spark的記憶體和CPU使用效率,使其效能接近於硬體的極限,主要體現以下幾點:
1.記憶體管理和二進位制處理,充分利用應用程式語義明確管理記憶體,消除JVM物件模型和垃圾收集機制的開銷。
2.快取敏感型計算,演算法和資料結構都是利用記憶體層次結構。
3.程式碼生成,使用程式碼生成器充分利用現代編譯器和CPU。

注重CPU的效率是來自於Spark的工作瓶頸主要是在CPU和記憶體,而不是IO和網路通訊,有關研究報告見:Spark只比Hadoop快19% ?

為什麼CPU是新的瓶頸?有許多原因,一個原因是硬體配置提供了大量的聚合性的IO貸款,比如10Gbps網路連線,而記憶體透過SSD或HDD陣列實現,序列化和hashing(都是CPU敏感的)已經成為Spark關鍵瓶頸,而不是底層硬體的原生網路吞吐量。

詳細最佳化細節見:

Project Tungsten: Bringing Spark Closer to Bare Me

相關文章