Spark
Posted by Bruce Tsai
06/16/2016
Apache Spark 是一個開源叢集運算框架,最初是由加州大學柏克萊分校 AMPLab 所開發。相對於Hadoop 的 MapReduce 會在執行完工作後將中介資料存放到磁碟中,Spark 使用了記憶體內運算技術,能在資料尚未寫入硬碟時即在記憶體內分析運算。Spark 在記憶體內執行程式的運算速度能做到比 Hadoop MapReduce 的運算速度快上 100 倍,即便是執行程式於硬碟時,Spark 也能快上 10 倍速度。Spark 允許用戶將資料加載至叢集記憶體,並多次對其進行查詢,非常適合用於機器學習演算法。
使用 Spark 需要搭配叢集管理員和分散式儲存系統。Spark 支援獨立模式(本地 Spark 叢集)、Hadoop YARN 或 Apache Mesos 的叢集管理。在分散式儲存方面,Spark 可以和HDFS、 Cassandra、OpenStack Swift 和 Amazon S3 等介面搭載。Spark 也支援偽分散式(pseudo-distributed)本地模式,不過通常只用於開發或測試時以本機檔案系統取代分散式儲存系統。在這樣的情況下,Spark 僅在一台機器上使用每個 CPU 核心執行程式。