spark 源碼編譯 standalone 模式部署

本文介紹如何編譯 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 在有些機器要配置好。

相關文章
相關標籤/搜索