注:
1. 本文鏈接中,包含[]的為已翻譯的文檔鏈接,不包含的為官方文檔鏈接。
2. 涉及到編程語言的部分,以翻譯Scala的部分為主
Spark概述
Apache Spark是一個快速的,通用的集群計算系統(tǒng)。在Java,Scala,Python和R語言中提供了高層API,并提供一個支持一般圖形計算的優(yōu)化引擎。Spark支持一個豐富的高層工具集,包括Spark SQL用于SQL和結(jié)構(gòu)化數(shù)據(jù)處理,MLLib用于機(jī)器學(xué)習(xí),GraphX用于圖處理和Spark Streaming。
下載
從官網(wǎng)下載頁面獲取Spark。本文檔適用于Spark 2.1.0版本。Spark為使用HDFS和YARN而需要用到Hadoop客戶端庫。下載包是為適配主流Hadoop版本預(yù)先打包好的。用戶還可以下載"Hadoop free"二進(jìn)制文件,然后通過配置Spark的classpath在任意版本的Hadoop中運行Spark。Scala和Java用戶可以使用maven cooridnates在項目中包含Spark。將來Python用戶也可以從PyPI中安裝Spark。
如果想要從源碼編譯Spark,訪問構(gòu)建Spark。
Spark可以在Windows和類UNIX系統(tǒng)(如Linux,Mac OS)上運行。Spark很容易在一臺機(jī)器上本地運行——你需要做的就是在系統(tǒng)PATH上安裝了Java,或者在JAVA_HOME環(huán)境變量中指定了Java的安裝路徑。
Spark可以運行在Java 7+,Python 2.6+/3.4+,R 3.1+環(huán)境上。對于Scala API,Spark 2.1.0使用的是Scala 2.11。你需要使用一個可兼容的Scala版本(2.11.x)。
請注意,從Spark 2.0.0開始,對Java 7和Python 2.6的支持已棄用,從Spark 2.1.0開始,對Scala 2.10和Hadoop 2.6之前版本的支持已棄用,在Spark 2.2.0時可能會被刪除。
運行示例和Shell
Spark自帶幾個示例程序。Scala,Java,Python和R語言的示例在 examples/src/main 目錄下。要運行Java或者Scala示例程序,在Spark的根目錄中使用bin/run-example <class> [params](在后臺,將調(diào)用更通用的spark-submit腳本來啟動應(yīng)用程序)。例如:
./bin/run-example SparkPi 10
也可以使用一個修改版的Scala Shell以交互方式運行Spark。這是一種學(xué)習(xí)框架非常好的方式。
./bin/spark-shell --master local[2]
其中--master選項指定了分布式集群的master URL,local以單線程在本地運行,local[N]以N個線程在本地運行。你應(yīng)該首先使用local來進(jìn)行測試。完整的選項列表,可使用--help選項來運行Spark。
Spark也提供了Python API。要在Python解釋器中以交互方式運行Spark,使用bin/pyspark:
./bin/pyspark --master local[2]
Spark也提供了Python的示例應(yīng)用程序,例如,
./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]
Spark也提供了R語言的示例應(yīng)用程序,例如,
./bin/spark-submit examples/src/main/r/dataframe.R
在集群上運行
Spark集群模式概述解釋了在集群上運行Spark的關(guān)鍵概念。Spark可以獨立運行,或者在多個現(xiàn)有的集群管理器上運行。目前提供了集中部署選項:
- Standalone Deploy Mode:在私有集群上部署Spark最簡單的方法
- Apache Mesos
- Hadoop YARN
從這里開始
編程指南:
- [Quick Start]:Spark的快速介紹,從這開始吧!
- [Spark Programming Guide]:Spark在所有支持語言(Scala,Java,Python,R)中的詳細(xì)概述。
- 構(gòu)建在Spark上的模塊:
- Spark Streaming:處理實時數(shù)據(jù)流
- Spark SQL, Datasets, and DataFrames:支持結(jié)構(gòu)化數(shù)據(jù)和關(guān)系查詢
- MLlib:內(nèi)置的機(jī)器學(xué)習(xí)庫
- GraphX:Spark用于圖形處理的新API
API文檔:
- Spark Scala API (Scaladoc)
- Spark Java API (Javadoc)
- Spark Python API (Sphinx)
- Spark R API (Roxygen2)
部署指南:
- 集群概述:在集群運行時的概念和組件概述
- 提交應(yīng)用程序:打包和部署應(yīng)用程序
- 部署模式:
- Amazon EC2:讓你在5分鐘之內(nèi)在EC2上啟動集群的腳本
- Standalone Deploy Mode:不使用第三方集群管理器的情況下快速啟動獨立集群
- Mesos:使用Apache Mesos部署一個私有集群
- YARN:在Hadoop NextGen (YARN)上部署Spark
其它文檔
- 配置:通過配置系統(tǒng)定制Spark
- 監(jiān)控:跟蹤你的應(yīng)用程序的行為
- 優(yōu)化指南:優(yōu)化性能和內(nèi)存使用的最佳實踐
- 任務(wù)調(diào)度:在應(yīng)用程序內(nèi)和跨應(yīng)用程序調(diào)度資源
- 安全性:Spark的安全性支持
- 硬件配置:對集群硬件配置的建議
- 與其它存儲系統(tǒng)集成
- 構(gòu)建Spark:使用Maven系統(tǒng)來構(gòu)建Spark
- 給Spark做貢獻(xiàn)
- 第三方項目:相關(guān)的第三方Spark項目
外部資源
- Spark主頁
- Spark社區(qū):資源,包括一些當(dāng)?shù)氐木蹠?/li>
- StackOverflow tag apache-spark
- 郵件列表:可以在這里問Spark的問題
- AMP Camps:在加州大學(xué)伯克利分校的一系列訓(xùn)練營,關(guān)于Spark,Spark Streaming,Mesos以及更多內(nèi)容的特色演講和練習(xí)。視頻,幻燈片和練習(xí)可以在網(wǎng)上免費獲取。
-
代碼示例:可以在Spark(Scala, Java, Python, R)的
examples子文件夾中獲取更多示例。