Introduction

在 hadoop architecture 學習紀錄中介紹過了 Hadoop、Yarn 跟 MapReduce,接下來來介紹一個應用在分散式儲存系統上的一套工具,SPARK。

Apache Spark 是一個迅速的分散式運算系統,眾所皆知的幾個特點是 :

Speed :

Spark 所有的運算都是 In Memory 的,其速度甚至可以達到 MapReduce 的百倍以上,也比一般讀寫硬碟的速度高十倍有餘。

所以相對而言,也非常吃記憶體,使用 Spark 時的記憶體規劃是很重要的喔。

Ease of Use :

Spark 本身是用 Scala 開發的,但也提供 high-level APIs 支援 Java 、 Scala、Python、R 等多種語言。

Generality :

Spark 同時也支持圖形介面與多項工具的應用,包括 :

Spark SQL : 可以下 SQL 指令及對結構化資料做處理。

MLlib : 這個套件主要提供豐富的機器學習功能。

GraphX : graph處理。

Spark Streaming : 對串流資料的處理。

Runs Everywhere :

他可以在很多環境上執行,可以在Yarn、Mesos、K8S、Cloud(EC2),或是 standalone。

*本文以 pyspark 為範例。

*版本為 spark-2.2.1

Last updated