Apache Spark批處理模式

時間:2017-11-23 14:30:03

    與MapReduce不同,Spark的數據處理工作全部在內存中進行,只在一開始將數據讀入內存,以及將最終結果持久存儲時需要與存儲層交互。所有中間態的處理結果均存儲在內存中。

 

  雖然內存中處理方式可大幅改善性能,Spark在處理與磁盤有關的任務時速度也有很大提升,因為通過提前對整個任務集進行分析可以實現更完善的整體式優化。為此Spark可創建代表所需執行的全部操作,需要操作的數據,以及操作和數據之間關系的Directed Acyclic Graph(有向無環圖),即DAG,借此處理器可以對任務進行更智能的協調。

 

  為了實現內存中批計算,Spark會使用一種名為Resilient Distributed Dataset(彈性分布式數據集),即RDD的模型來處理數據。這是一種代表數據集,只位于內存中,永恒不變的結構。針對RDD執行的操作可生成新的RDD。每個RDD可通過世系(Lineage)回溯至父級RDD,并最終回溯至磁盤上的數據。Spark可通過RDD在無需將每個操作的結果寫回磁盤的前提下實現容錯。

? 江苏快3号码表