本文選自微信公衆號:superdiao的果殼
今天給大家介紹如何在Linux虛擬機上搭建spark集羣。
需要聲明的是,此次安裝的spark集羣是在Hadoop完全分佈式集羣(1個master,2個slave)的基礎之上搭建的,環境是3臺64位的centos7虛擬機。
安裝基礎環境(SCALA環境)
Scala2.12.7 環境搭建
1)下載scala安裝包scala-2.12.7.tgz,解壓至 /opt/ 目錄下
tar -zxvf scala-2.12.7.tgz
2)添加Scala環境變量,在~/.bashrc(當前用戶下存放的環境變量)中添加:
export SCALA_HOME=/opt/scala-2.12.7
export PATH=$SCALA_HOME/bin:$PATH
3)保存後刷新配置
source ~/.bashrc
Spark2.4.0完全分佈式環境搭建
以下操作都在Master節點進行。
1)下載二進制包spark-2.4.0-bin-hadoop2.7.tgz(如果Hadoop的版本是2.8.5也不必擔心,兩者可以很好地兼容)
2)解壓並移動到相應目錄,命令如下:
tar -zxvf spark-2.4.0-bin-hadoop2.7.tgz
mv spark-2.4.0-bin-hadoop2.7 /opt
3)修改相應的配置文件。
修改 ~/.bashrc,增加如下內容:
export SPARK_HOME=/opt/spark-2.4.0-bin-hadoop2.7/
export PATH=$PATH:$SPARK_HOME/bin
進入/opt/spark-2.4.0-bin-hadoop2.7/conf
複製 spark-env.sh.template 成 spark-env.sh
cp spark-env.sh.template spark-env.sh
修改$SPARK_HOME/conf/spark-env.sh,添加如下內容:
export JAVA_HOME=/opt/jdk1.8.0_102
export SCALA_HOME=/opt/scala-2.12.7
export HADOOP_HOME=/opt/hadoop-2.8.5
export HADOOP_CONF_DIR=/opt/hadoop-2.8.5/etc/hadoop
export SPARK_MASTER_IP=192.168.38.129 #主機master的ip地址
export SPARK_MASTER_HOST=192.168.38.129
export SPARK_LOCAL_IP=192.168.38.129
export SPARK_WORKER_MEMORY=2g #運行內存,視情況而變
export SPARK_WORKER_CORES=2 #兩個slave
export SPARK_HOME=/opt/spark-2.4.0-bin-hadoop2.7
export SPARK_DIST_CLASSPATH=$(/opt/hadoop-2.8.5/bin/hadoop classpath)
複製$SPARK_HOME/conf/slaves目錄下的slaves.template成slaves
cp slaves.template slaves
然後添加如下內容:
master
slave1
slave2
4)將配置好的spark文件複製到Slave1和Slave2節點。
scp /opt/spark-2.4.0-bin-hadoop2.7 root@slave1:/opt
scp /opt/spark-2.4.0-bin-hadoop2.7 root@slave2:/opt
5)修改Slave1和Slave2配置。
scp ~/.bashrc root@slave1:/root/
scp ~/.bashrc root@slave2:/root/
在Slave1和Slave2修改$SPARK_HOME/conf/spark-env.sh,將export SPARK_LOCAL_IP =192.168.38.129改成Slave1和Slave2對應節點的IP,然後再source一下環境變量。
6)在Master節點啓動集羣。
#爲了避免衝突和更加直觀,可以先改下腳本的名字。
cp /opt/spark-2.4.0-bin-hadoop2.7/sbin/start-all.sh /opt/spark-2.4.0-bin-hadoop2.7/sbin/start-spark.sh
start-spark.sh #因爲該腳本的父目錄已經在環境變量中了,所以可以直接運行。
7)查看集羣是否啓動成功:
jps
Master在Hadoop的基礎上新增了:Master
Slave在Hadoop的基礎上新增了:Worker
8) 停止spark集羣
#爲了避免和Hadoop的腳本名字衝突和更加直觀,可以先改下腳本的名字。
cp /opt/spark-2.4.0-bin-hadoop2.7/sbin/stop-all.sh /opt/spark-2.4.0-bin-hadoop2.7/sbin/stop-spark.sh
stop-spark.sh #當然以後可以直接運行start-spark.sh來啓動spark集羣
好了,搭建過程就此結束了~是不是感覺很容易呢?