Spark之基本架構和工作原理

一、基本概念

  • Spark是一個基於內存的分佈式批處理引擎

二、基本用途

  • 數據處理: 快速處理數據,兼具容錯性與擴張性
  • 迭代計算: 有效應對多步數據處理邏輯
  • 數據挖掘: 在海量數據基礎上進行復雜的挖掘分析,支持多種數據挖掘和機器學習算法

三、適用場景

1.數據處理、ETL
2.迭代計算、數據重複利用
  • 通話記錄分析
3.機器學習
  • 空氣質量預測和評價
  • 自動判斷買家好/差評
  • 客戶流失預測
4.交互式分析
  • 結合hive/hbase數據倉庫查詢
5.流計算
  • 頁面瀏覽/點擊分析
  • 推薦系統
  • 輿情分析

四、對比優勢

1.運算效率高
  • 基於內存計算,將中間結果存放內存;
  • 基於DAG的任務調度執行機制,迭代運算效率更高
2.容錯性高
  • 使用彈性分佈式數據集RDD,數據集部分丟失可重建
3.通用性強
  • 支持多種數據集操作類型  大致分爲Transformations和Actions兩大類,而MapReduce只提供Map和Reduce操作

五、體系架構

在這裏插入圖片描述

六、部署模式

1.local模式

  單機多線程模擬spark分佈式計算

  • local  只啓動一個Executor。
  • local[k]:  啓動K個Executor
  • local[*]:  啓動跟CPU數目相同的Executor
2.standalone模式
  • 分佈式部署集羣,自帶完整的服務,資源管理和任務監控是Spark自己監控,這個模式也是其他模式的基礎
3.yarn模式
  • 分佈式部署集羣,資源管理和任務監控交給yarn管理
  • 粗粒度資源分配方式,包括cluster和client運行方式
cluster:適合生產,driver運行在集羣子節點,具有容錯功能
client:  適合調試,driver運行在客戶端
4.mesos模式
  • 運行在mesos資源管理器框架之上,由mesos負責資源管理,spark負責任務調度和計算
5.cloud模式
  • 例如AWS的EC2,使用該模式很方便訪問Amazon的S3;Spark支持多種分佈式存儲系統,包括HDFS和S3
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章