Spark 研究

Apache Spark 最初是加州大學柏克萊分校 AMPLab 的一個研究專案,專注於大數據分析。

我們的目標是設計一個程式設計模型,支援比 MapReduce 更廣泛的應用程式類別,同時維持其自動容錯能力。特別是,MapReduce 對於需要在多個平行運算中進行低延遲資料共用的多重傳遞應用程式而言效率不彰。這些應用程式在分析中相當常見,包括

  • 反覆運算,包括許多機器學習演算法和 PageRank 等圖形演算法。
  • 互動式資料探勘,使用者希望將資料載入叢集中的 RAM 並重複查詢。
  • 串流應用程式,隨著時間推移而維持聚集狀態。

傳統的 MapReduce 和 DAG 引擎不適合這些應用程式,因為它們基於非循環資料流程:應用程式必須作為一系列不同的工作執行,每個工作都會從穩定儲存裝置(例如分散式檔案系統)讀取資料,並將其寫回穩定儲存裝置。它們會在每個步驟載入資料和將其寫回複製儲存裝置時產生顯著成本。

Spark 提供一個稱為 彈性分散式資料集(RDD) 的抽象,以有效支援這些應用程式。RDD 可以儲存在查詢之間的記憶體中,無需複製。相反地,它們會在發生故障時使用譜系重建遺失的資料:每個 RDD 都會記住它是如何從其他資料集(透過轉換,例如 mapjoingroupBy)建構而成的,以重建自身。RDD 讓 Spark 能在多重傳遞分析中將現有模型的效能提升至多 100 倍。我們展示了 RDD 可以支援各種反覆運算、互動式資料探勘和高效率的 SQL 引擎(Shark)。

您可以在以下論文中找到更多關於 Spark 背後研究的資訊

最新消息

檔案