iT邦幫忙

6

Apache Spark 入門(1)

CF 2018-04-30 10:46:158790 瀏覽

簡介

Apache Spark 是一個強大的大數據處理平臺,各位也知道,現在大數據的資料規模和產生速度都是 TB or PB 級的,所以要有一個強大的平台來協助處理這些資料,那這個時候大家通常會腦海中會浮現 Hadoop 或是 Spark,那為什麼我要選 Spark 而不選 Hadoop 呢?

客倌請看:

  • Hadoop
    Hadoop

  • Spark
    Spark

Spark 是基於記憶體內的計算框架。Spark 在運算時,將中間產生的資料暫存在記憶體中,因此可以加快執行速度。尤其需要反覆操作的次數越多,所需讀取的資料量越大,則越能看出 Spark 的效能,而 Hadoop 每次做完一次運算就必須做硬碟 I/O,所以兩者差異就很明顯了。

架構

接下來我們來看一下 Spark 的架構:
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 的初步使用。


1 則留言

0
darwin0616
iT邦新手 3 級 ‧ 2018-04-30 10:58:29

歡迎入坑 Apache Spark, 個人滿推薦 "joechh大大" 的 Spark in scala鐵人30天, 也滿期待您的後續文章 in pyspark ! 未來有機會, 小弟再把 Spark in Java 這塊補齊 ! :)

CF iT邦新手 5 級‧ 2018-04-30 13:14:23 檢舉

Thanks!!
其實已經接觸一段時間了,只是寫一個筆記,順便驗證自己想的對不對,如果有誤,還請多多指正!

我要留言

立即登入留言