部署5节点 spark 3 分布式集群的流程
一、环境准备
搭建环境:CentOS7+Java Version: 1.8.0+Hadoop3.0.0+Spark3.0.1
之前环境已经安装:CentOS7+Java Version: 1.8.0+Hadoop3.0.0 ,所以下载Spark3,Spark3下载(http://spark.apache.org/downloads.html),如果官网无法下载,官网源码提供了其他下载路径(https://archive.apache.org/dist/spark/)。
因为已经安装过hadoop,所以选择spark-3.0.1-bin-without-hadoop.tgz这个版本,执行wget https://archive.apache.org/dist/spark/spark-3.0.1/spark-3.0.1-bin-without-hadoop.tgz这个命令。
如果官网太慢可以去清华镜像(https://mirrors.tuna.tsinghua.edu.cn/)找寻/apache/spark/spark-3.0.1/apache/spark/spark-3.0.1/spark-3.0.1-bin-without-hadoop.tgz ,会比较快
二、解压
我们下载的位置在~,进行解压缩并放到/opt/soft , 执行以下命令:
sudo tar -zxf spark-3.0.1-bin-without-hadoop.tgz -C /opt/soft
把压缩后的内容搬移到/opt/soft/spark
三、添加环境变量
执行以下命令vim /etc/profile,
在这里添加以下指令
#spark
export SPARK_HOME=/opt/soft/spark
export PATH=$PATH:$SPARK_HOME/bin
执行以下命令source /etc/profile
四、配置Spark
我们将配置5台,其中02这台当做master , 01,03,04,05这4台当做slave子节点,所以一二三的步驟都要重复在 01,03,04,05这4台中,到第四步骤时分别执行。
在02这台master机中spark目录中的conf目录下复制spark-env.sh.template并改名为spark-env.sh,然后开启 spark-env.sh。
cd /opt/soft/spark/conf
cp spark-env.sh.template spark-env.sh
vim spark-env.sh
后面开启此文档,里面添加spark_master_host与spark_master_port ,spark_master_host就是主节点机器的名称就是02,
修改配置文件slaves,此步驟在子节点配置也就是在01,03,04,05这4台进行操作以下指令
cd /opt/soft/spark/conf
cp slaves.template slaves
vim slaves
后面开启此文档,里面添加每个子节点的主机名称。
开启/opt/soft/spark/sbin/spark-config.sh在最后添加写死JAVA_HOME路径,此操作在01,02,03,04,05这5台进行操作。
五、启动Spark
启动spark集群,sh /opt/soft/spark/sbin/start-all.sh,此时如果出现Caused by: java.lang.ClassNotFoundException: org.apache.log4j.spi.Filter 错误,就是缺少org/apache/log4j/spi/Filter 类支持,在/opt/soft/spark/jars下增加log4j的jar包,我使用的是log4j-1.2.17.jar包。
此时如果出现Caused by: java.lang.ClassNotFoundException: org.slf4j.Logger 错误,,解决方法就是在/opt/soft/spark/conf/spark-env.sh 文件中添加export SPARK_DIST_CLASSPATH=$(hadoop classpath) 就可以。
启动 成功后,我们在02这台查看一下java进程就可以看到Master被启动。
在其他子节点这台查看一下java进程就可以看到Worker被启动。
查看集群资源页面(webUI:http://mastername:8080/) ,此处的mastername 也就是范例中02那一台,如果不是8080端口可以看一下spark-env.sh档案,添加
#默认端口8080
export SPARK_MASTER_WEBUI_PORT=8080
export SPARK_WORK_PORT=7078
查看集群资源页面会出现如下:
执行spark-shell,就可以看到spark version 3.0.1版本,就已经完成.