Apache Spark優勢與局限

時間:2017-11-23 14:32:40

    使用Spark而非Hadoop MapReduce的主要原因是速度。在內存計算策略和先進的DAG調度等機制的幫助下,Spark可以用更快速度處理相同的數據集。Spark的另一個重要優勢在于多樣性。該產品可作為獨立集群部署,或與現有Hadoop集群集成。該產品可運行批處理和流處理,運行一個集群即可處理不同類型的任務。

 

  除了引擎自身的能力外,圍繞Spark還建立了包含各種庫的生態系統,可為機器學習、交互式查詢等任務提供更好的支持。相比MapReduce,Spark任務更是“眾所周知”地易于編寫,因此可大幅提高生產力。

 

  為流處理系統采用批處理的方法,需要對進入系統的數據進行緩沖。緩沖機制使得該技術可以處理非常大量的傳入數據,提高整體吞吐率,但等待緩沖區清空也會導致延遲增高。這意味著Spark Streaming可能不適合處理對延遲有較高要求的工作負載。

 

  由于內存通常比磁盤空間更貴,因此相比基于磁盤的系統,Spark成本更高。然而處理速度的提升意味著可以更快速完成任務,在需要按照小時數為資源付費的環境中,這一特性通常可以抵消增加的成本。

 

  Spark內存計算這一設計的另一個后果是,如果部署在共享的集群中可能會遇到資源不足的問題。相比Hadoop MapReduce,Spark的資源消耗更大,可能會對需要在同一時間使用集群的其他任務產生影響。從本質來看,Spark更不適合與Hadoop堆棧的其他組件共存一處。

? 江苏快3号码表