Spark簡介

Spark簡介

Spark是基於內存計算的大數據並行計算框架,可用於構建大型的、低延遲的數據分析應用程序。git

主要特色

  • 運行速度快:DAG(Directed Acyclic Graph,有向無環圖)執行引擎
  • 容易使用:多語言編程支持;提供簡潔的API;Spark shell實時交互式編程反饋
  • 通用性:技術棧完整,包括SQL查詢、流式計算、機器學習和圖算法組件
  • 運行模式多樣:可運行在Hadoop、獨立的集羣模式、雲環境中,並可訪問HDFS、Cassandra、HBase、Hive等多種數據源

對比Hadoop

Hadoop的MapReduce計算模型延遲太高,磁盤IO開銷大,沒法勝任實時快速計算的需求,於是只適用於離線批處理的應用場景。
相比於MapReduce,Spark主要具備以下優勢:github

  • Spark的計算模式也屬於MapReduce,但不侷限於Map和Reduce操做,還提供了多種數據集操做類型,編程模型比MapReduce更靈活;
  • Spark提供了內存計算,中間結果直接放到內存中,帶來了更高的迭代運算效率,減小了IO開銷;
  • Spark基於DAG的任務調度執行機制,要優於MapReduce的迭代執行機制。

但Spark並不能徹底替代Hadoop,主要用於替代Hadoop中的MapReduce計算模型。
Hadoop可使用廉價的、異構的機器來作分佈式存儲與計算,而Spark對內存與CPU有必定的要求。
Spark能夠藉助於YARN實現資源調度管理,藉助於HDFS實現分佈式存儲。算法

Spark生態系統

在實際應用中,大數據處理主要包括如下三個類型:shell

  • 複雜的批量數據處理:時間跨度一般在數十分鐘到數小時之間;--- Hadoop MapReduce
  • 基於歷史數據的交互式查詢:時間跨度一般在數十秒到數分鐘之間;--- Impala、Hive
  • 基於實時數據流的數據處理:時間跨度一般在數百毫秒到數秒之間。--- 流計算框架Storm

Spark知足不一樣應用場景:apache

  • Spark能夠部署在資源管理器YARN之上,同時支持批處理、交互式查詢和流數據處理。
  • Spark生態系統兼容Hadoop生態系統,現有Hadoop應用程序能夠容易地遷移到Spark系統中。

Spark生態系統主要組件

  • Spark Core:一般所說的Apache Spark,包含Spark的基本功能;
  • Spark SQL:使用SQL命令進行查詢,並進行更復雜的數據分析;
  • Spark Streaming:支持高吞吐量、可容錯處理的實時流數據處理;
  • MLlib(機器學習):經常使用機器學習算法的實現;編程

  • GraphX(圖計算):用於圖計算的API;框架

相關文章
相關標籤/搜索