假設我們使用三台機器安裝spark,分别是host1、host2、host3. 其中,host2作為主節點。
安裝步驟如下。
1、下載下傳、解壓安裝檔案
wget http://d3kbcqa49mib13.cloudfront.net/spark-1.6.1-bin-hadoop2.6.tgz (下載下傳安裝檔案)
tar zxf spark-1.6.1-bin-hadoop2.6.tgz
2、修改配置檔案
cd spark-1.6.1-bin-hadoop2.6/
cp conf/slaves.template conf/slaves
vi conf/slaves
host1
host2
host3
cp conf/spark-env.sh.template conf/spark-env.sh
vi conf/spark-env.sh
SPARK_MASTER_IP=host2
SPARK_MASTER_PORT=7001
SPARK_MASTER_WEBUI_PORT=7002
SPARK_WORKER_CORES=1
SPARK_WORKER_MEMORY=2g
SPARK_WORKER_PORT=7003
SPARK_WORKER_WEBUI_PORT=7004
SPARK_WORKER_INSTANCES=1
JAVA_HOME=/storm/jdk1.8.0_60
3、設定無秘鑰登入及環境變量
確定“java -version”執行成功
配置無秘鑰登入:在master上用“ssh-kengen -t rsa”指令生成公私鑰對(回車兩次,私鑰無密碼),将公鑰複制到三台機器上的使用者主目錄下的.ssh檔案夾的authorized_keys檔案末尾。
配置環境變量(三台機器上都要執行):vi ~/.bash_profile
export SPARK_HOME=/home/wangshichun/spark-1.6.1-bin-hadoop2.6
生效環境變量:source ~/.bash_profile
4、複制配置檔案到其他機器
scp conf/slaves host1:$SPARK_HOME/conf
scp conf/slaves host3:$SPARK_HOME/conf
scp conf/spark-env.sh host1:$SPARK_HOME/conf
scp conf/spark-env.sh host3:$SPARK_HOME/conf
5、互動模式執行spark代碼,進行功能測試(也稱為Local模式部署)
在$SPARK_HOME目錄下:
./bin/spark-shell
或
./bin/spark-shell --master local[1]
或
./bin/spark-shell --master spark://host2:7001 (使用此中方式啟動spark-shell後,在master的ui界面上會看到“Running Applications”中有名為“Spark shell”的任務,spark-shell退出後,會出現在“Completed Applications”中)
--jars 參數可以将多個jar檔案(逗号分隔)添加到程式的classpath中
等出現“scala>”提示符後,輸入如下内容:
scala> var textFile = sc.textFile("file:///home/wangshichun/spark-1.6.1-bin-hadoop2.6/README.md")
textFile: org.apache.spark.rdd.RDD[String] = file:///home/wangshichun/spark-1.6.1-bin-hadoop2.6/README.md MapPartitionsRDD[5] at textFile at <console>:27
scala> textFile.first()
res3: String = # Apache Spark
scala> textFile.count()
res4: Long = 95
scala> val textFilter = textFile.filter(line => line.contains("Spark"))
textFilter: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[6] at filter at <console>:29
scala> textFilter.count()
res5: Long = 17
scala> :help 可檢視幫助,列出可用的指令
6、standalone模式部署
./sbin/start-master.sh
./sbin/start-slaves.sh
通路UI界面:
http://host2:7002/ MARSTER的UI界面
http://host1:7003/ WORKER的UI界面
http://host2:7003/ WORKER的UI界面
http://host3:7003/ WORKER的UI界面
此模式下,需要通過spark-submit腳本送出jar檔案來送出自己寫的spark程式代碼。