首頁  >  文章  >  運維  >  apache spark 是什麼

apache spark 是什麼

步履不停
步履不停原創
2019-06-28 13:52:173572瀏覽

apache spark 是什麼

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 共存於節點的一個共享池中。

更多Apache的相關技術文章,請造訪Apache教學專欄進行學習!

以上是apache spark 是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn