簡介
Apache Spark 是一個強大的大數據處理平臺,各位也知道,現在大數據的資料規模和產生速度都是 TB or PB 級的,所以要有一個強大的平台來協助處理這些資料,那這個時候大家通常會腦海中會浮現 Hadoop 或是 Spark,那為什麼我要選 Spark 而不選 Hadoop 呢?
客倌請看:
- Hadoop
- Spark
Spark 是基於記憶體內的計算框架。Spark 在運算時,將中間產生的資料暫存在記憶體中,因此可以加快執行速度。尤其需要反覆操作的次數越多,所需讀取的資料量越大,則越能看出 Spark 的效能,而 Hadoop 每次做完一次運算就必須做硬碟 I/O,所以兩者差異就很明顯了。
架構
接下來我們來看一下 Spark 的架構:
Spark 除了有豐富的函式庫,也對 Python, Java, Scala, R 提供了相同一致的 API :
- Spark Core
Spark Core 包含了一些基礎功能,如工作排程 記憶體管理等,而 Spark 主要的程式抽象化結構 – RDD (Resilient Disributed Datasets 彈性分散式資料集) 的 API 也是定義在 Spark Core 中。 - Spark SQL
Spark SQL 是處理結構化資料所產生的元件,它允許使用者使用如同 Apache Hive 一樣透過 SQL 語法做資料查詢,除了提供 SQL 使用介面外,Spark SQL 也允許開發人員將 SQL 查詢與其他 RDD 所支援的資料處理方式一起使用。 - Spark Streaming
顧名思義,Spark Streaming 是一個在處理即時串流資料的元件,例如 web server 所產生的 log,或是服務狀態的變化,Spark Streaming 提供處理這類資料的 API。 - MLlib
Spark MLlib 提供了常見的 machine learning 函式庫,在 MLlib 裡面除了常見的分類分群和迴歸之外,也提供了模型評估和資料導入的功能。 - GraphX
這是用來在 Spark 處理圖像相關資料及進行分散式圖像處理的函式庫,GraphX 提供了很多處理圖像的操作,如subgraph 和 mapVertices 以及常見的圖形演算法。
上面我們介紹了 Spark,那下一篇我們來講解一下 pyspark API 的初步使用。
转载请注明:XAMPP中文组官网 » Apache Spark 入門(1)