发布时间:2022-11-15 10:00
本文选自微信公众号: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集群
好了,搭建过程就此结束了~是不是感觉很容易呢?