Spark 概述
Apache Spark是一個快速和通用的集羣計算系統。它提供Java,scala,Python、R語言的APIs,以及支持一般執行圖形的優化引擎。 它還支持一組豐富的高級工具,包括用於SQL和結構化數據處理的Spark SQL,用於機器學習的MLlib,用於圖形處理的GraphX和Spark Streaming。
下載
從項目網站的下載頁面獲取Spark。本文檔適用於Spark 2.1.0版本。 Spark使用Hadoop的客戶端庫用於HDFS和YARN。下載是預先打包的一些流行的Hadoop版本。用戶還可以下載“Hadoop free”二進制文件,並通過擴充Spark的類路徑,使用任何Hadoop版本運行Spark。 Scala和Java用戶可以使用其maven cooridnates在他們的項目中包含Spark,並且在將來Python用戶也可以從PyPI安裝Spark。
如果你想從源代碼編譯Spark,請訪問Building Spark。
Spark在Windows和類UNIX系統(例如Linux,Mac OS)上運行。它很容易在一臺計算機上本地運行 – 所有你需要的是在系統PATH上安裝java,或者JAVA_HOME環境變量指向Java安裝位置。
Spark運行於Java 7+,Python 2.6 + / 3.4 +和R 3.1+。對於Scala API,Spark 2.1.0使用Scala 2.11。您將需要使用兼容的Scala版本(2.11.x)。
請注意,Java 7和Python 2.6的支持在從Spark 2.0.0已過時,並且對於Scala 2.10和2.6之前的Hadoop版本的支持在Spark 2.1.0中已過時,並且可能會在Spark 2.2.0中被刪除。
運行示例和Shell
Spark附帶了幾個示例程序。 Scala,Java,Python和R示例在 examples/src/ main目錄中。 要運行Java或Scala示例程序之一,請在頂級Spark目錄中使用bin / run-example [params]。 (在後臺,這將調用更通用的spark提交腳本來啓動應用程序)。 例如,
./bin/run-example SparkPi 10
您還可以通過Scala shell的修改版本以交互方式運行Spark。 這是一個學習框架的好方法。
./bin/spark-shell --master local[2]
--master
選項指定分佈式集羣的master URL,或者本地使用一個線程運行在本地,或者使用local [N]在本地使用N個線程運行。 您應該首先使用local進行測試。 有關選項的完整列表,請運行Spark shell 使用–help選項。
Spark還提供了一個Python API。 要在Python解釋器中以交互方式運行Spark,請使用bin / pyspark
:
./bin/pyspark --master local[2]
示例應用程序也在Python中提供。 例如,
./bin/spark-submit examples/src/main/python/pi.py 10
Spark自1.4以來提供了一個實驗R API(僅包括DataFrames API)。 要在R解釋器中以交互方式運行Spark,請使用bin / sparkR
:
./bin/sparkR --master local[2]
示例應用也在R中提供。例如,
./bin/spark-submit examples/src/main/r/dataframe.R
在羣集上運行
Spark集羣模式概述解釋了在集羣上運行的關鍵概念。 Spark可以單獨運行,也可以通過多個現有集羣管理器運行。 它目前提供了幾個部署選項:
- 獨立部署模式:在私有集羣上部署Spark的最簡單方法
- Apache Mesos
- Hadoop YARN
從哪裏入手
編程指南
- 快速入門:快速介紹Spark API; 從這裏開始!
- Spark編程指南:Spark所有支持的語言(Scala,Java,Python,R)
- 基於Spark的模塊:
- Spark Streaming:處理實時數據流
- Spark SQL,Datasets和DataFrames:支持結構化數據和關係查詢
- MLlib:內置機器學習庫
- GraphX:Spark的新圖形處理API
API Docs
- Spark Scala API (Scaladoc)
- Spark Java API (Javadoc)
- Spark Python API (Sphinx)
- Spark R API (Roxygen2)
部署指南
- 集羣概述:在集羣上運行的組件概述
- 提交應用程序:打包和部署應用程序
- 部署模式:
- Amazon EC2:允許您在大約5分鐘內在EC2上啓動集羣的腳本
- 獨立部署模式:快速啓動獨立集羣,無需第三方集羣管理器
- Mesos:使用Apache Mesos部署私有集羣
- YARN:在Spark上部署Hadoop的下一代(YARN)
其他文檔
- 配置:- 通過其配置系統定製Spark
- 監視:跟蹤應用程序的行爲
- 優化指南:優化性能和內存使用的最佳做法
- 作業調度:在Spark應用程序內部和跨程序調度資源
- 安全:Spark安全支持
- 硬件配置:針對集羣硬件的建議
- 與其他存儲系統集成:
- 編譯Spark:使用Maven系統構建Spark
- 貢獻給Spark
- 第三方項目:相關第三方Spark項目