Spark簡介


Apache Spark是一個開源叢集計算框架。其主要目的是處理實時生成的資料。

Spark建立在Hadoop MapReduce的頂部。它被優化為在記憶體中執行,而Hadoop的MapReduce等替代方法將資料寫入計算機硬碟驅動器或從計算機硬碟驅動器寫入資料。因此,Spark比其他替代方案更快地處理資料。

Apache Spark歷史

Spark由Matei Zaharia於2009年在加州大學伯克利分校的AMPLab發起。它於2010年根據BSD許可證開源。

2013年,該專案被Apache Software Foundation收購。2014年,Spark成為頂級Apache專案。

Apache Spark的功能

  • 快速 - 使用最先進的DAG排程程式,查詢優化器和物理執行引擎,為批次處理和流資料提供高效能。
  • 易於使用 - 它有助於使用Java,Scala,Python,R和SQL編寫應用程式。它還提供80多個高階運算子。
  • 通用性 - 它提供了一系列庫,包括SQL和DataFrames,用於機器學習的MLlib,GraphX和Spark Streaming。
  • 輕量級 - 它是一種輕型統一分析引擎,用於大規模資料處理。
  • 無處不在 - 它可以輕鬆執行在Hadoop,Apache Mesos,Kubernetes,獨立或雲端。

Spark的使用

資料整合:系統生成的資料不夠整合,無法結合進行分析。要從系統中獲取一致的資料,可以使用提取,轉換和載入(ETL)等過程。Spark用於減少此ETL過程所需的成本和時間。

  • 流處理:處理實時生成的資料(如紀錄檔檔案)總是很困難。Spark能夠執行資料流並拒絕潛在的欺詐性操作。
  • 機器學習:由於資料量的增加,機器學習方法變得更加可行並且越來越準確。由於spark能夠將資料儲存在記憶體中並且可以快速執行重複查詢,因此可以輕鬆處理機器學習演算法。
  • 互動式分析:Spark能夠快速生成響應。因此,可以互動式地處理資料,而不是執行預定義的查詢。