1. 程式人生 > >【Spark】Ubuntu16.04 spark 叢集安裝 (standalone模式)

【Spark】Ubuntu16.04 spark 叢集安裝 (standalone模式)

一、前言

目前 Apache Spark 支援三種分散式部署方式,分別是:

  • standalone
  • spark on mesos
  • spark on YARN

其中,第一種類似於MapReduce 1.0所採用的模式,內部實現了容錯性和資源管理,後兩種則是未來發展的趨勢,部分容錯性和資源管理交由統一的資源管理系統完成:讓Spark執行在一個通用的資源管理系統之上,這樣可以與其他計算框架,比如MapReduce,公用一個叢集資源,最大的好處是降低運維成本和提高資源利用率(資源按需分配)。

具體的區別這裡先不討論,本篇主要介紹 standalone 模式的叢集搭建。

二、準備機器

192.168.11.72 master
192.168.11.73 spark1
192.168.11.74 spark2
192.168.11.75 spark3
192.168.11.76 spark4

將上述對映關係分別儲存到 每臺機器的 /etc/hosts 檔案中。

三、建立 spark 使用者,配置免密登入

建立 spark 使用者:

sudo adduser spark

設定好密碼後一路回車即可。

然後配置免密登入:

四、安裝 JDK

給所有的機器都安裝好 jdk,配置好環境變數:

vi ~/.bashrc

```
export JAVA_HOME=/usr/local/jdk1.8.0_181
export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
```

source ~/.bachrc 後可以驗證:

java -version 

```
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
```

五、具體安裝步驟

5.1、下載 Spark 安裝包

將下載好的安裝包上傳到 master:192.168.11.72。

解壓:

tar -zxvf spark-2.3.1-bin-hadoop2.7.tgz -C /home/spark/
mv spark-2.3.1-bin-hadoop2.7 spark

5.2、配置 spark

進入 spark conf 配置目錄下:

cd /home/spark/spark/conf/
mv spark-env.sh.template spark-env.sh
vi spark-env.sh

在該檔案下新增:

export JAVA_HOME=/usr/local/jdk1.8.0_181
export SPARK_MASTER_IP=master
export SPARK_MASTER_PORT=7077

SPARK_MASTER_IP 指明主節點。

mv slaves.template slaves
vi slaves

在該檔案中新增子節點所在的位置(Worker節點):

spark1
spark2
spark3
spark4

5.3 節點複製

配置好 spark 後,將整個 spark 目錄拷貝到其他節點上(注意節點的路徑必須和master一樣,否則master啟動叢集回去從節點中對應目錄中去啟動 work,不一致會報 No such file or directory)。

scp -r /home/spark/spark [email protected]:/home/spark
scp -r /home/spark/spark [email protected]:/home/spark
scp -r /home/spark/spark [email protected]:/home/spark
scp -r /home/spark/spark [email protected]:/home/spark

5.4 啟動節點

接著就可以啟動了:在 master 節點,執行 spark 目錄下 sbin 目錄下的 start-all.sh 指令碼即可:

/home/spark/spark/sbin/start-all.sh

可見 spark 的啟動與 hadoop 無關,如果是採取 spark on YARN 的模式,則需要啟動 yarn 叢集。

啟動後執行 jps 命令,主節點上有 Master 程序,其他子節點上有 Work 程序,也可以登入 Spark 管理介面檢視叢集狀態:http://master:8080/

六、執行 spark 自帶的例子

/home/spark/spark/bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://master:7077 \
--executor-memory 1G \
--total-executor-cores 2 \
/home/spark/spark/examples/jars/spark-examples_2.11-2.3.1.jar 100
  • –class 應用程式的主類,含包名
  • –master master 的地址,提交任務到哪裡執行
  • –executor-memory 每個 executor 的記憶體
  • –total-executor-cores 所有 executor 總共的核數(僅僅在 mesos 或者 standalone 下使用)
  • –executor-core 每個 executor 的核數(僅僅在 mesos 或者 standalone 下使用)