Spark概述

Spark 概述
Apache Spark 是一個快速的, 多用途的集群計算系統。 它在 Java, Scala, Python 和 R 語言以及一個支持常見的圖計算的經過優化的引擎中提供了高級 API。 它還支持一組豐富的高級工具, 包括用于 SQL 和結構化數據處理的 Spark SQL, 用于機器學習的 MLlib, 用于圖形處理的 GraphX, 以及Spark Streaming
下載
從該項目官網的 下載頁面 獲取 Spark. 該文檔用于 Spark 2.2.0 版本. Spark 使用了針對 HDFS 和 YARN 的 Hadoop 的 client libraries(客戶端庫). 為了適用于主流的 Hadoop 版本可以下載先前的 package. 用戶還可以下載 “Hadoop free” binary, 并且可以 通過增加 Spark 的 classpath Spark 來與任何的 Hadoop 版本一起運行 Spark. Scala 和 Java 用戶可以在他們的工程中使用它的 Maven 坐標來包含 Spark, 并且在將來 Python 用戶也可以從 PyPI 中安裝 Spark。
如果您希望從源碼中構建 Spark, 請訪問 構建 Spark.
Spark 既可以在 Windows 上又可以在類似 UNIX 的系統(例如, Linux, Mac OS)上運行。它很容易在一臺機器上本地運行 - 您只需要在系統 PATH上安裝 Java, 或者將 JAVA_HOME 環境變量指向一個 Java 安裝目錄即可。
Spark 可運行在 Java 8+, Python 2.7+/3.4+ 和 R 3.1+ 的環境上。針對 Scala API, Spark 2.2.0 使用了 Scala 2.11. 您將需要去使用一個可兼容的 Scala 版本 (2.11.x).
請注意, 從 Spark 2.2.0 起, 對 Java 7, Python 2.6 和舊的 Hadoop 2.6.5 之前版本的支持均已被刪除.
請注意, Scala 2.10 的支持已經不再適用于 Spark 2.1.0, 可能會在 Spark 2.3.0 中刪除。
運行示例和 Shell
Spark 自帶了幾個示例程序. Scala, Java, Python 和 R 示例在 examples/src/main
目錄中. 要運行 Java 或 Scala 中的某個示例程序, 在最頂層的 Spark 目錄中使用 bin/run-example <class> [params]命令即可.(在幕后, 它調用了 spark-submit腳本以啟動應用程序)。例如,
./bin/run-example SparkPi 10

您也可以通過一個改進版的 Scala shell 來運行交互式的 Spark。這是一個來學習該框架比較好的方式。
./bin/spark-shell --master local[2]
該 --master選項可以指定為為 針對分布式集群的 master URL, 或者 local以使用 1 個線程在本地運行, 或者 local[N]以使用 N 個線程在本地運行。您應該通過使用 local來啟動以便測試. 該選項的完整列表, 請使用 --help選項來運行 Spark shell。
Spark 同樣支持 Python API。在 Python interpreter(解釋器)中運行交互式的 Spark, 請使用 bin/pyspark
:
./bin/pyspark --master local[2]

Python 中也提供了應用示例。例如,
./bin/spark-submit examples/src/main/python/pi.py 10

從 1.4 開始(僅包含了 DataFrames APIs)Spark 也提供了一個用于實驗性的 R API。 為了在 R interpreter(解釋器)中運行交互式的 Spark, 請執行 bin/sparkR
:
./bin/sparkR --master local[2]

R 中也提供了應用示例。例如,
./bin/spark-submit examples/src/main/r/dataframe.R

在集群上運行該 Spark 集群模式概述 說明了在集群上運行的主要的概念。 Spark 既可以獨立運行, 也可以在一些現有的 Cluster Manager(集群管理器)上運行。它當前提供了幾種用于部署的選項:
Standalone Deploy Mode: 在私有集群上部署 Spark 最簡單的方式
Apache Mesos
Hadoop YARN

快速跳轉
編程指南:
快速入門: 簡單的介紹 Spark API; 從這里開始!
Spark 編程指南: 在 Spark 支持的所有語言(Scala, Java, Python, R)中的詳細概述。
構建在 Spark 之上的模塊:Spark Streaming: 實時數據流處理
Spark SQL, Datasets, and DataFrames: 支持結構化數據和關系查詢
MLlib: 內置的機器學習庫
GraphX: 新一代用于圖形處理的 Spark API。

API 文檔:
Spark Scala API (Scaladoc)
Spark Java API (Javadoc)
Spark Python API (Sphinx)
Spark R API (Roxygen2)

部署指南:
集群概述: 在集群上運行時概念和組件的概述。
提交應用: 打包和部署應用
部署模式:Amazon EC2: 花費大約5分鐘的時間讓您在EC2上啟動一個集群的腳本
Standalone Deploy Mode: 在不依賴第三方 Cluster Manager 的情況下快速的啟動一個獨立的集群
Mesos: 使用 Apache Mesos 來部署一個私有的集群
YARN: 在 Hadoop NextGen(YARN)上部署 Spark
Kubernetes (experimental): 在 Kubernetes 之上部署 Spark

其它文檔:
配置: 通過它的配置系統定制 Spark
監控: 跟蹤應用的行為
優化指南: 性能優化和內存調優的最佳實踐
任務調度: 資源調度和任務調度
安全性: Spark 安全性支持
硬件挑選: 集群硬件挑選的建議
與其他存儲系統的集成:OpenStack Swift

構建 Spark: 使用 Maven 來構建 Spark
給 Spark 貢獻
第三方項目: 其它第三方 Spark 項目的支持

外部資源:
Spark 首頁
Spark 社區 資源, 包括當地的聚會
StackOverflow tag apache-spark

Mailing Lists: 在這里詢問關于 Spark 的問題
AMP Camps: 在 UC Berkeley(加州大學伯克利分校)的一系列的訓練營中, 它們的特色是討論和針對關于 Spark, Spark Streaming, Mesos 的練習, 等等。在這里可以免費獲取視頻, 幻燈片練習題
Code Examples: 更多示例
可以在 Spark 的子文件夾中獲取 (Scala, Java, Python, R)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容