目录
一.环境准备
二.安装步骤
三.使用Standalone模式
四.使用Yarn模式
一.环境准备
由于Spark仅仅是一种计算机框架,不负责数据的存储和管理,因此,通常都会将Spark和Hadoop进行统一部署,由Hadoop中的HDFS,HBase等组件负责数据的存储管理,Spark负责数据计算。
安装Spark集群之前,需要安装Hadoop环境,我的配置环境如下:
- Linux系统:CentOS_6.7 版本
- Hadoop:3.1.3 版本
- JDK:1.8 版本
- Spark:3.1.1 版本
二.安装步骤
Spark部署模式分为Local模式(单机模式)和集群模式,集群模式又分为Standalone模式,Yarn模式和Mesos模式。本文章主要阐述spark集群配置,Standalone模式和Yarn模式的使用
1.下载Spark安装包
下载地址:http://archive.apache.org/dist/spark/
选择自己需要的版本下载,由于我的hadoop版本是3.x,所以我下载的是第二个spark-3.1.1-bin-hadoop3.2.tgz
2.解压Spark安装包
将下载的安装包上传到主节点master的/opt/software目录,然后解压到/opt/servers目录,命令如下:
[root@master ~]# tar -zxvf /opt/software/spark-3.1.1-bin-hadoop3.2.tgz -C /opt/servers/
为了方便,将解压后的目录重命名为spark,命令如下:
[root@master ~]# mv /opt/servers/spark-3.1.1-bin-hadoop3.2/ /opt/servers/spark
3.修改配置文件
进入spark/conf目录修改Spark的配置文件,将spark-env.sh.template配置模板文件复制一份并命名为spark-env.sh,命令如下:
[root@master ~]# cd /opt/servers/spark/conf/
[root@master conf]# cp ./spark-env.sh.template ./spark-env.sh
修改spark-env.sh文件,命令如下:
[root@master conf]# vi ./spark-env.sh
#添加以下内容
export JAVA_HOME=/opt/servers/java
export SPARK_MASTER_HOST=master
export SPARK_MASTER_PORT=7077
export YARN_CONF_DIR=/opt/servers/hadoop/etc/hadoop
export HADOOP_CONF_DIR=/opt/servers/hadoop/etc/hadoop
复制workers.template文件,并重命名为workers,命令如下:
[root@master conf]# cp ./workers.template ./workers
指定Spark集群中的从节点IP
[root@master conf]# vi ./workers
slave1
slave2
4.分发文件
修改完成配置文件后,将spark目录分发至slave1和slave2节点,命令如下:
[root@master ~]# scp -r /opt/servers/spark/ slave1:/opt/servers/
[root@master ~]# scp -r /opt/servers/spark/ slave2:/opt/servers/
至此,Spark集群配置就完成了。
三.使用Standalone模式
首先要启动spark集群,spark集群的启动方式和启动hadoop集群方式类似,直接使用spark/sbin/start-all.sh脚本即可,在spark根目录下执行:
[root@master spark]# ./sbin/start-all.sh
启动完成后,使用jps命令查看进程
访问Spark管理界面 https://master:8080 来查看集群状态
测试官方案例
Spark集群部署完毕,可以使用Spark官方示例SparkPi体验Spark集群提交任务的流程,首先进入到spark目录,命令如下:
[root@master spark]# ./bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://master:7077 --executor-memory 1G --total-executor-core1 examples/jars/spark-examples_2.12-3.1.1.jar 10
四.使用Yarn模式
Yarn模式不需要启动spark集群,只需要启动hadoop集群即可,在启动hadoop集群之前,需要在yarn-site.xml文件关闭内存检查,否则在测试官方案例时可能会报错。
[root@master ~]# cd /opt/servers/hadoop/etc/hadoop/
[root@master hadoop]# vi ./yarn-site.xml
#添加以下内容
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
添加后需要将此文件分发至slave1,slave2
[root@master hadoop]# scp -r ./yarn-site.xml slave1:/opt/servers/hadoop/etc/hadoop/
[root@master hadoop]# scp -r ./yarn-site.xml slave2:/opt/servers/hadoop/etc/hadoop/
分发完成后,在主节点启动hadoop集群
[root@master hadoop]# start-all.sh
启动后测试spark官方案例
- --deploy-mode 指定部署模式,默认是客户端模式
- client 客户端模式,运行结果会直接打印在控制台
- cluster 集群模式
[root@master spark]# ./bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode client --driver-memory 1G --executor-memory 1G --executor-cores 1 examples/jars/spark-examples_2.12-3.1.1.jar 10
[root@master spark]# ./bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster --driver-memory 1G --executor-memory 1G --executor-cores 1 examples/jars/spark-examples_2.12-3.1.1.jar 10