Spark Core:
包含Spark的基本功能,包含任務調度,內存管理,容錯機制等,內部定義了RDDs(彈性分布式數據集),提供了很多APIs來創建和操作這些RDDs。為其他組件提供底層的服務。
Spark SQL:
Spark處理結構化數據的庫,就像Hive SQL,Mysql一樣,企業中用來做報表統計。
Spark Streaming:
實時數據流處理組件,類似Storm。Spark Streaming提供了API來操作實時流數據。企業中用來從Kafka接收數據做實時統計。
MLlib:
一個包含通用機器學習功能的包,Machine learning lib包含分類,聚類,回歸等,還包括模型評估和數據導入。MLlib提供的上面這些方法,都支持集群上的橫向擴展。
Graphx:
處理圖的庫(例如,社交網絡圖),并進行圖的并行計算。像Spark Streaming,Spark SQL一樣,它也繼承了RDD API。它提供了各種圖的操作,和常用的圖算法,例如PangeRank算法。
Hadoop MapReduce缺點:
1 表達能力有限
2 磁盤IO開銷大,任務之間的銜接涉及IO開銷
3 延遲高,Map任務要全部結束,reduce任務才能開始。
Spark借鑒Hadoop MapReduce優點的同時,解決了MapReuce所面臨的問題,有如下優點:
1. Spark的計算模式也屬于MapReduce,但不局限于Map和Reduce操作,還提供多種數據集操作類型,編程模型比Hadoop MapReduce更靈活。
2. Spark提供了內存計算,可將中間結果放到內存中,對于迭代運算效率更高
4. Spark基于DAG的任務調度執行機制,要優于Hadoop MapReduce的迭代執行機制。
---------------------
基本概念:
https://blog.csdn.net/zxc123e/article/details/79912343
一個Application由一個Driver和若干個Job構成,一個Job由多個Stage構成,一個Stage由多個沒有Shuffle關系的Task組成。