Spark 數據分析導論-筆記

Spark Core程序員

  • Spark Core 實現了Spark 的基本功能,包含任務調度內存管理錯誤恢復、與存儲系統交互等模塊。
  • Spark Core 中還包含了
    • 對彈性分佈式數據集(resilient distributed dataset,簡稱RDD)的API 定義。
      • RDD 表示分佈在多個計算節點上能夠並行操做的元素集合
      • 是Spark 主要的編程抽象
      • Spark Core 提供了建立和操做這些集合的多個API。

Spark SQL算法

  • Spark SQL 是Spark 用來操做結構化數據的程序包
  • 使用SQL或者Apache Hive 版本的SQL 方言(HQL)來查詢數據。
    • Spark SQL 支持多種數據源,好比Hive 表、Parquet 以及JSON 等。
  • 除了爲Spark 提供了一個SQL 接口,
    • Spark SQL 還支持開發者將SQL 和傳統的RDD 編程的數據操做方式相結合,
      • 不管是使用Python、Java 仍是Scala,
    • 開發者均可以在單個的應用中同時使用SQL 和複雜的數據分析。
    • 經過與Spark所提供的豐富的計算環境進行如此緊密的結合,
      • Spark SQL 得以從其餘開源數據倉庫工具中脫穎而出。
    • Spark SQL 是在Spark 1.0 中被引入的。

Spark Streaming編程

  • Spark Streaming 是Spark 提供的對實時數據進行流式計算組件
    • 好比生產環境中的網頁服務器日誌,
    • 或是網絡服務中用戶提交的狀態更新組成的消息隊列,都是數據流。
  • SparkStreaming 提供了用來操做數據流的API,
    • 而且與Spark Core 中的RDD API 高度對應。
  • 這樣一來,程序員編寫應用時的學習門檻就得以下降,
    • 不管是操做內存或硬盤中的數據,
    • 仍是操做實時數據流,
    • 程序員都更能應對自如。
  • 從底層設計來看,Spark Streaming 支持與Spark Core 同級別容錯性、吞吐量以及可伸縮性

MLlib服務器

  • Spark 中還包含一個提供常見的機器學習(ML)功能的程序庫,叫做MLlib。
  • MLlib 提供了不少種機器學習算法,
    • 包括分類、迴歸、聚類、協同過濾等,
    • 還提供了模型評估、數據導入等額外的支持功能。
  • MLlib 還提供了一些更底層的機器學習原語
    • 包括一個通用的梯度降低優化算法。
  • 全部這些方法都被設計爲能夠在集羣上輕鬆伸縮的架構。

GraphX網絡

  • GraphX 是用來操做圖(好比社交網絡的朋友關係圖)的程序庫,
    • 能夠進行並行的圖計算。
  • 與Spark Streaming 和Spark SQL 相似,
    • GraphX 也擴展了Spark 的RDD API,
    • 能用來建立一個頂點和邊都包含任意屬性的有向圖。
  • GraphX 還支持針對圖的各類操做
    • (好比進行圖分割的subgraph 和操做全部頂點的mapVertices),
    • 以及一些經常使用圖算法(好比PageRank和三角計數)。

集羣管理器架構

  • 就底層而言,Spark 設計爲能夠高效地在一個計算節點到數千個計算節點之間伸縮計算。
  • 爲了實現這樣的要求,同時得到最大靈活性,
    • Spark 支持在各類集羣管理器(clustermanager)上運行,
      • 包括Hadoop YARN、Apache Mesos,以及Spark 自帶的一個簡易調度器,叫做獨立調度器。
  • 若是要在沒有預裝任何集羣管理器的機器上安裝Spark,
    • 那麼Spark自帶的獨立調度器可讓你輕鬆入門;
  • 而若是已經有了一個裝有Hadoop YARN 或Mesos的集羣,
    • 經過Spark 對這些集羣管理器的支持,
    • 你的應用也一樣能運行在這些集羣上。
相關文章
相關標籤/搜索