Spark是一個基於記憶體計算的開源的叢集計算系統,目的是讓資料分析更加快速。Spark非常小巧玲瓏,由加州伯克利大學AMP實驗室的Matei為主的小團隊所開發。使用的語言是Scala,專案的core部分的程式碼只有63個Scala檔案,非常短小精悍。 Spark 是一種與 Hadoop 相似的開源叢集計算環境,但是兩者之間還存在一些不同之處,這些有用的不同之處使 Spark 在某些工作負載方面表現得更加優越,換句話說,Spark 啟用了記憶體分佈資料集,除了能夠提供互動式查詢外,它還可以最佳化迭代工作負載。 Spark 是在 Scala 語言中實現的,它將 Scala 用作其應用程式框架。與 Hadoop 不同,Spark 和 Scala 能夠緊密整合,其中的 Scala 可以像操作本地集合物件一樣輕鬆地操作分散式資料集。 儘管建立 Spark 是為了支援分散式資料集上的迭代作業,但是實際上它是對 Hadoop 的補充,可以在 Hadoop 檔案系統中並行執行。透過名為Mesos的第三方叢集框架可以支援此行為。Spark 由加州大學伯克利分校 AMP 實驗室 (Algorithms, Machines, and People Lab) 開發,可用來構建大型的、低延遲的資料分析應用程式。 Spark 叢集計算架構 雖然 Spark 與 Hadoop 有相似之處,但它提供了具有有用差異的一個新的叢集計算框架。首先,Spark 是為叢集計算中的特定型別的工作負載而設計,即那些在並行操作之間重用工作資料集(比如機器學習演算法)的工作負載。為了最佳化這些型別的工作負載,Spark 引進了記憶體叢集計算的概念,可在記憶體叢集計算中將資料集快取在記憶體中,以縮短訪問延遲。 Spark 還引進了名為彈性分散式資料集(RDD) 的抽象。RDD 是分佈在一組節點中的只讀物件集合。這些集合是彈性的,如果資料集一部分丟失,則可以對它們進行重建。重建部分資料集的過程依賴於容錯機制,該機制可以維護 "血統"(即允許基於資料衍生過程重建部分資料集的資訊)。RDD 被表示為一個 Scala 物件,並且可以從檔案中建立它;一個並行化的切片(遍佈於節點之間);另一個 RDD 的轉換形式;並且最終會徹底改變現有 RDD 的永續性,比如請求快取在記憶體中。 Spark 中的應用程式稱為驅動程式,這些驅動程式可實現在單一節點上執行的操作或在一組節點上並行執行的操作。與 Hadoop 類似,Spark 支援單節點叢集或多節點叢集。對於多節點操作,Spark 依賴於 Mesos 叢集管理器。Mesos 為分散式應用程式的資源共享和隔離提供了一個有效平臺。該設定充許 Spark 與 Hadoop 共存於節點的一個共享池中。
Spark是一個基於記憶體計算的開源的叢集計算系統,目的是讓資料分析更加快速。Spark非常小巧玲瓏,由加州伯克利大學AMP實驗室的Matei為主的小團隊所開發。使用的語言是Scala,專案的core部分的程式碼只有63個Scala檔案,非常短小精悍。 Spark 是一種與 Hadoop 相似的開源叢集計算環境,但是兩者之間還存在一些不同之處,這些有用的不同之處使 Spark 在某些工作負載方面表現得更加優越,換句話說,Spark 啟用了記憶體分佈資料集,除了能夠提供互動式查詢外,它還可以最佳化迭代工作負載。 Spark 是在 Scala 語言中實現的,它將 Scala 用作其應用程式框架。與 Hadoop 不同,Spark 和 Scala 能夠緊密整合,其中的 Scala 可以像操作本地集合物件一樣輕鬆地操作分散式資料集。 儘管建立 Spark 是為了支援分散式資料集上的迭代作業,但是實際上它是對 Hadoop 的補充,可以在 Hadoop 檔案系統中並行執行。透過名為Mesos的第三方叢集框架可以支援此行為。Spark 由加州大學伯克利分校 AMP 實驗室 (Algorithms, Machines, and People Lab) 開發,可用來構建大型的、低延遲的資料分析應用程式。 Spark 叢集計算架構 雖然 Spark 與 Hadoop 有相似之處,但它提供了具有有用差異的一個新的叢集計算框架。首先,Spark 是為叢集計算中的特定型別的工作負載而設計,即那些在並行操作之間重用工作資料集(比如機器學習演算法)的工作負載。為了最佳化這些型別的工作負載,Spark 引進了記憶體叢集計算的概念,可在記憶體叢集計算中將資料集快取在記憶體中,以縮短訪問延遲。 Spark 還引進了名為彈性分散式資料集(RDD) 的抽象。RDD 是分佈在一組節點中的只讀物件集合。這些集合是彈性的,如果資料集一部分丟失,則可以對它們進行重建。重建部分資料集的過程依賴於容錯機制,該機制可以維護 "血統"(即允許基於資料衍生過程重建部分資料集的資訊)。RDD 被表示為一個 Scala 物件,並且可以從檔案中建立它;一個並行化的切片(遍佈於節點之間);另一個 RDD 的轉換形式;並且最終會徹底改變現有 RDD 的永續性,比如請求快取在記憶體中。 Spark 中的應用程式稱為驅動程式,這些驅動程式可實現在單一節點上執行的操作或在一組節點上並行執行的操作。與 Hadoop 類似,Spark 支援單節點叢集或多節點叢集。對於多節點操作,Spark 依賴於 Mesos 叢集管理器。Mesos 為分散式應用程式的資源共享和隔離提供了一個有效平臺。該設定充許 Spark 與 Hadoop 共存於節點的一個共享池中。