天天看點

[Spark]Spark RDD 指南二 初始化

1. 初始化

Spark程式必須做的第一件事是建立一個

JavaSparkContext

對象(Scala和Python中是

SparkContext

對象),它告訴Spark如何通路叢集。 要建立

SparkContext

,您首先需要建構一個包含有關應用程式資訊的

SparkConf

對象。

Java版本:

private static String appName = "JavaWordCountDemo";
private static String master = "local";

// 初始化Spark
private static SparkConf conf = new SparkConf().setAppName(appName).setMaster(master);
private static JavaSparkContext sc = new JavaSparkContext(conf);           

Scala版本:

val conf = new SparkConf().setAppName(appName).setMaster(master)
new SparkContext(conf)           

備注

每個JVM隻有一個SparkContext可能是活躍的。 在建立新的SparkContext之前,必須先調用

stop()

方法停止之前活躍的SparkContext。

Python版本:

conf = SparkConf().setAppName(appName).setMaster(master)
sc = SparkContext(conf=conf)           

appName參數是應用程式在叢集UI上顯示的名稱。 master是Spark,Mesos或YARN叢集URL,或以本地模式運作的特殊字元串“local”。 實際上,當在叢集上運作時,您不需要在程式中寫死

master

,而是使用spark-submit啟動應用程式并以參數傳遞進行接收。但是,對于本地測試和單元測試,你可以通過“local”來運作Spark程序。

https://note.youdao.com/md/?file=%2Fyws%2Fapi%2Fpersonal%2Ffile%2FWEB20e7c9d3158ec8045c5e51cd21bb6596%3Fmethod%3Ddownload%26read%3Dtrue#2-%E4%BD%BF%E7%94%A8shell 2. 使用Shell

在 Spark shell 中,已經為你建立了一個專有的 

SparkContext

,可以通過變量

sc

通路。你自己建立的

SparkContext

 将無法工作。可以用 

--master

 參數來設定 

SparkContext

 要連接配接的叢集,用 

--jars

 來設定需要添加到 classpath 中的 JAR 包,如果有多個 JAR 包使用逗号分割符連接配接它們。你還可以通過向

--packages

參數提供逗号分隔的maven坐标清單,将依賴關系(例如Spark Packages)添加到shell會話中。 可能存在依賴關系的其他存儲庫(例如Sonatype)可以傳遞給

--repositories

參數。例如:在一個擁有 4 核的環境上運作 bin/spark-shell,使用:

./bin/spark-shell --master local[4]           

或者,還可以将code.jar添加到其classpath中,請使用:

./bin/spark-shell --master local[4] --jars code.jar           

使用maven坐标來包含依賴關系:

./bin/spark-shell --master local[4] --packages "org.example:example:0.1"           

可以執行 

spark-shell --help

 擷取完整的選項清單。其背後,

spark-shell

調用的是更常用的

spark-submit

腳本

(Behind the scenes, spark-shell invokes the more general spark-submit script.)。

原文:

http://spark.apache.org/docs/latest/programming-guide.html#initializing-spark