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能夠快速生成響應。因此,可以交互式地處理數據,而不是運行預定義的查詢。