基于CentOS7的Spark on YARN模式集群部署

3台服务器部署结构

hostname hadoopSvr1 hadoopSvr3 hadoopSvr4
IP 10.62.124.41 10.62.124.43 10.62.124.44
spark master/worker worker worker

目录规划

#Spark中暂存空间的使用目录SPARK_LOCAL_DIRS
/data/spark/tmp

一、前提条件

1、确保集群中已经安装好了hadoop(2.7及以上版本);

Hadoop集群安装参考:https://blog.csdn.net/wangkai_123456/article/details/87185339

2、确保集群中每台机器上已经安装好了scala(2.12及以上版本);

scala安装参考:https://blog.csdn.net/u011563666/article/details/79298314

二、安装Spark-2.4.0

1、下载Spark安装包,下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.4.0/spark-2.4.0-bin-without-hadoop.tgz,以spark-2.4.0版本为例

2、将下载的Spark安装包放到/usr/local目录,解压缩安装包

tar zxvf spark-2.4.0-bin-without-hadoop.tgz
mv spark-2.4.0-bin-without-hadoop spark //重命名目录

3、配置Spark

3.1、配置Spark运行环境

cd spark/conf    #进入spark配置目录
cp spark-env.sh.template spark-env.sh   #从配置模板复制
vi spark-env.sh     #添加配置内容

在spark-env.sh末尾添加以下内容(这是我的配置,你可以自行修改):

#如果下载的包类型是“Pre-build with user-provided Hadoop[can use with most Hadoop distributions]”,则需要在配置文件spark-env.sh中第一行添加如下配置信息:
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop-3.2.0/bin/hadoop classpath)

export JAVA_HOME=/usr/java/jdk1.8.0_111
export SCALA_HOME=/usr/local/scala

export HADOOP_HOME=/usr/local/hadoop-3.2.0
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
#设置hadoopSvr1主机为master节点
export SPARK_MASTER_HOST=hadoopSvr1    
#作业可使用的内存容量
export SPARK_WORKER_MEMORY=8G
#Spark中暂存空间的使用目录
export SPARK_LOCAL_DIRS=/data/spark/tmp
#driver进程使用的内存容量
export SPARK_DRIVER_MEMORY=1G

注:在设置Worker进程的CPU个数和内存大小,要注意机器的实际硬件条件,如果配置的超过当前Worker节点的硬件条件,Worker进程会启动失败。

3.2、配置Spark从节点,修改slaves文件

cp slaves.template slaves
vi slaves

修改其内容如下:

hadoopSvr1
hadoopSvr3
hadoopSvr4

4、配置Spark环境变量

vi /etc/profile

打开后,在文档最下方添加如下配置:

export SPARK_HOME=/usr/local/spark
export PATH=$SPARK_HOME/bin:$PATH

:wq!保存退出,执行如下命令,使更改生效

source /etc/profile

5、复制Spark配置好的包到其他Linux主机

[root@hadoopSvr3 local]# scp -r [email protected]:/usr/local/spark .
[root@hadoopSvr4 local]# scp -r [email protected]:/usr/local/spark .

三、启动Spark集群

在hadoopSvr1主机上执行命令:start-all.sh

四、验证Spark是否安装成功

1、用jps检查,在 master 上应该有以下几个进程:

[root@hadoopSvr1 sbin]# jps
14273 NodeManager
12930 Jps
17465 Daemon
4905 DataNode
10011 Master
10251 Worker
4716 NameNode

在 slave 上应该有以下几个进程:

[root@hadoopSvr3 conf]# jps
14291 Elasticsearch
4500 Worker
1605 DataNode
4920 Jps
31530 ResourceManager
31183 NodeManager

2、登录WebUI查看spark集群信息

http://hadoopSvr1:8001/  #默认配置是8080端口,由于hadoopSvr1主机上8080端口被占用,所以我配置SPARK_MASTER_WEBUI_PORT=8001,具体配置方法如下:
#打开master文件

vi sbin/start-master.sh

在vi命令模式下输入 :/8080

if [ "$SPARK_MASTER_WEBUI_PORT" = "" ]; then
  SPARK_MASTER_WEBUI_PORT=8080
fi

找到后修改该端口为8001
命令模式下保存退出
重启一遍

sbin/start-all.sh

http://hadoopSvr1:8001页面就可以访问了

猜你喜欢

转载自blog.csdn.net/wangkai_123456/article/details/87348161