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