Spark及其生態系統簡介總結


Spark擁有DAG執行引擎,支持在內存中對數據進行迭代計算

Spark不僅支持Scala編寫應用程序,而且支持Java和Python等語言進行編寫,特別是Scala是一種高效、可拓展的語言,能夠用簡潔的代碼處理較為復雜的處理工作。

 

Spark生態圈即BDAS===》

Spark具有很強的適應性,能夠讀取HDFS、Cassandra、HBase、S3和Techyon為持久層讀寫原生數據,能夠以Mesos、YARN和自身攜帶的Standalone作為資源管理器調度job,來完成Spark應用程序的計算。

spark跟hadoop的比較:

Spark是在借鑒了MapReduce之上發展而來的,繼承了其分布式並行計算的優點並改進了MapReduce明顯的缺陷,具體如下:

首先,Spark把中間數據放到內存中,迭代運算效率高。MapReduce中計算結果需要落地,保存到磁盤上,這樣勢必會影響整體速度,而Spark支持DAG圖的分布式並行計算的編程框架,減少了迭代過程中數據的落地,提高了處理效率。

其次,Spark容錯性高。Spark引進了彈性分布式數據集RDD (Resilient Distributed Dataset) 的抽象,它是分布在一組節點中的只讀對象集合,這些集合是彈性的,如果數據集一部分丟失,則可以根據“血統”(即充許基於數據衍生過程)對它們進行重建。另外在RDD計算時可以通過CheckPoint來實現容錯,而CheckPoint有兩種方式:CheckPoint Data,和Logging The Updates,用戶可以控制采用哪種方式來實現容錯。

最后,Spark更加通用。不像Hadoop只提供了Map和Reduce兩種操作,Spark提供的數據集操作類型有很多種,大致分為:Transformations和Actions兩大類。Transformations包括Map、Filter、FlatMap、Sample、GroupByKey、ReduceByKey、Union、Join、Cogroup、MapValues、Sort和PartionBy等多種操作類型,同時還提供Count, Actions包括Collect、Reduce、Lookup和Save等操作。另外各個處理節點之間的通信模型不再像Hadoop只有Shuffle一種模式,用戶可以命名、物化,控制中間結果的存儲、分區等。

 

Spark支持多種分布式存儲系統:HDFS和S3

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM