Spark的數據存儲(十九)

  Spark自己是基於內存計算的架構,數據的存儲也主要分爲內存和磁盤兩個路徑。Spark自己則根據存儲位置、是否可序列化和副本數目這幾個要素將數據存儲分爲多種存儲級別。此外還可選擇使用Tachyon來管理內存數據。算法

  爲了適應迭代計算,Spark將常常被重要的數據緩存到內存中以提高數據讀取速度,當內存容量有限時,則將數據存入磁盤中或根據最近最少使用頁面置換算法將內存中使用頻率較低的文件空間收回,從而讓新的數據進來。緩存

  Tachyon的出現主要是爲了解決3個問題而設計。一是多應用數據共享問題,二是JVM緩存數據丟失問題,三是GC開銷問題。Tachyon將過去的Spark中的計算和內存管理兩個部分分離,專門使用Tachyon在JVM堆外管理Spark計算所須要的數據,極大地減輕了Spark管理上的負擔和JVM內存負擔。這種設計思路能很好地解決以上3個問題並提高了程序運行的穩定性和速度。架構

相關文章
相關標籤/搜索