本文介紹如何編譯 spark 的源碼,而且用 standalone 的方式在單機上部署 spark。html
步驟以下:
1. 下載 spark 而且解壓
本文選擇 spark 的最新版本 2.2.0 (2017/07/01 發佈)
下載源碼和解壓的命令以下:node
SPARK_VERSION=2.2.0 wget https://github.com/apache/spark/archive/v${SPARK_VERSION}.tar.gz -O spark-${SPARK_VERSION}.tar.gz tar -zvxf spark-${SPARK_VERSION}.tar.gz
2. 編譯
編譯大概須要半個小時左右時間,不一樣的機器可能用的時間不一樣。
執行如下命令編譯python
cd spark-${SPARK_VERSION} build/mvn -DskipTests clean package
可參考 http://spark.apache.org/docs/latest/building-spark.htmlgit
3. 配置
若是都使用默認,能夠略過這一步。若是要改配置,按照下面步驟。github
首先用下面的命令建立配置文件:apache
cp conf/spark-defaults.conf.template conf/spark-defaults.conf
cp conf/spark-env.sh.template conf/spark-env.sh cp conf/slaves.template conf/slaves
而後,修改 conf/spark-defaults.conf,主要有如下配置oop
spark.master spark://master:7077 spark.eventLog.enabled true spark.eventLog.dir hdfs://namenode:8021/directory spark.serializer org.apache.spark.serializer.KryoSerializer spark.driver.memory 5g spark.executor.extraJavaOptions -XX:+PrintGCDetails -Dkey=value -Dnumbers="one two three"
而後,修改 conf/spark-env.sh,主要修改的有如下配置測試
HADOOP_CONF_DIR=/home/work/hadoop-2.6.0-cdh5.7.0/ SPARK_WORKER_CORES=10 SPARK_WORKER_MEMORY=40g SPARK_MASTER_HOST=192.168.1.112 SPARK_LOCAL_IP=192.168.1.112
而後,修改 conf/slaves, 添加 slave 的 hostname 或者 IP,若是隻有一個 slave,conf/slaves 內容以下:ui
192.168.1.112
若是有多個 slave,每一個 slave 佔一行,以下:url
192.168.1.112 192.168.1.113
3. standalone 模式部署
使用下面的命令部署 spark:
./sbin/start-all.sh
或者用下面的命令分步驟執行,效果是同樣的:
./sbin/start-master.sh
./sbin/start-slave.sh spark://localhost:7077
執行上面的命令以後,spark 服務就在單機上起來了。能夠用命令 ps aux | grep spark 查看,會有兩個 spark 的進程。
4. 測試
用下面的命令能夠提交一個任務給 spark 執行,測試部署是否成功。
./bin/spark-submit \ --master spark://localhost:7077 \ examples/src/main/python/pi.py
若是沒有出現錯誤信息,表示部署和執行任務成功。這個例子是讓 spark 計算圓周率,結果是打印出來。
5. 查看監控和統計信息
http://<hostname>:8080/
6. 關閉服務
下面的命令能夠關閉 spark 服務
./sbin/stop-all.sh
7. 查看log
logs 在目錄 ./logs/ 下
8. 注意事項
1. 若是機器有多個網口綁定多個 IP,配置文件的 IP 和 啓動 spark 服務 IP,以及 spark-submit 中的 IP 必須保持一致。localhost 在有些機器要配置好。