Spark集群安装部署

前面我们对Spark有一个整体概念之后,下面我们来安装部署一下Spark,spark也是支持集群模式的

Spark集群安装部署

Spark集群有多种部署方式,比较常见的有Standalone模式和ON YARN模式

  • Standalone模式就是说部署一套独立的Spark集群,后期开发的Spark任务就在这个独立的Spark集群中执行

  • ON YARN模式是说使用现有的Hadoop集群,后期开发的Spark任务会在这个Hadoop集群中执行,此时这个Hadoop集群就是一个公共的了,不仅可以运行MapReduce任务,还可以运行Spark任务,这样集群的资源就可以共享了,并且也不需要再维护一套集群了,减少了运维成本和运维压力,一举两得。

所以在实际工作中都会使用Spark ON YARN模式

不过为了考虑到大家可能会有一些特殊场景确实要使用standalone模式部署独立的spark集群,所以在这,针对这两种部署模式我们都讲一下。

那在具体安装部署之前,需要先下载Spark的安装包。

进到spark的官网,点击download按钮

图片描述

在这里可以选择Spark的版本和Hadoop的版本

图片描述

但是这里面只有Spark的最新版本,一般不建议选择最新版本,可以在最新版本往下面回退一两个小版本

那我们想要下载其它版本的话就需要到archive里面下载了

图片描述

目前spark有三大版本,1.x,2.x和3.x,其中3.x是一个预览版本,不能在生产环境中使用,所以目前使用最多的就是2.x的版本了

在这我们下载spark-2.4.3版本

图片描述

在这需要注意选择合适的安装包

因为我们使用Spark的时候一般都是需要和Hadoop交互的,所以需要下载带有Hadoop依赖的安装包

这个时候就需要选择Hadoop版本对应的Spark安装包,我们的Hadoop是3.2的,里面Hadoop的版本只有2.6和2.7的,那就退而求其次选择hadoop2.7对应的这个Spark安装包,其实也是没什么问题的,如果有强迫症的话,就需要下载Spark的源码包,自己编译配套版本的安装包了。

其实在Spark3.0的那个预览版本里面是有和Hadoop3.2配套的版本的,不过那个不是稳定版本,不建议在生产环境下使用,所以就不考虑了。

图片描述

所以最终我们就下载这个版本:

spark-2.4.3-bin-hadoop2.7.tgz

安装包百度网盘链接地址获取方式如下:

注意:为了保证下载链接地址一直可用,在这里通过微信公众号【大数据1024】获取,失效的话可以在公众号中随时动态更新。

图片描述

扫码关注之后回复spark即可获取下载地址。

Standalone

由于Spark集群也是支持主从的,在这我们使用三台机器,部署一套一主两从的集群

主节点:bigdata01

从节点:bigdata02,bigdata03

注意:需要确保这几台机器上的基础环境是OK的,防火墙、免密码登录、还有JDK

因为这几台机器我们之前已经使用过了,基础环境都是配置过的,所以说在这就直接使用了

先在bigdata01上进行配置

  1. 将spark-2.4.3-bin-hadoop2.7.tgz上传到bigdata01的/data/soft目录中

  2. 解压

[root@bigdata01 soft]# tar -zxvf spark-2.4.3-bin-hadoop2.7.tgz
  1. 重命名spark-env.sh.template
[root@bigdata01 soft]# cd spark-2.4.3-bin-hadoop2.7/conf/
[root@bigdata01 conf]# mv spark-env.sh.template  spark-env.sh
  1. 修改spark-env.sh

在文件末尾增加这两行内容,指定JAVA_HOME和主节点的主机名

export JAVA_HOME=/data/soft/jdk1.8
export SPARK_MASTER_HOST=bigdata01
  1. 重命名slaves.template
[root@bigdata01 conf]# mv slaves.template slaves
  1. 修改slaves

将文件末尾的localhost去掉,增加bigdata02和bigdata03这两个从节点的主机名

bigdata02
bigdata03
  1. 将修改好配置的spark安装包,拷贝到bigdata02和bigdata03上
[root@bigdata01 soft]# scp -rq spark-2.4.3-bin-hadoop2.7 bigdata02:/data/soft/
[root@bigdata01 soft]# scp -rq spark-2.4.3-bin-hadoop2.7 bigdata03:/data/soft/
  1. 启动Spark集群
[root@bigdata01 soft]# cd spark-2.4.3-bin-hadoop2.7
[root@bigdata01 spark-2.4.3-bin-hadoop2.7]# sbin/start-all.sh 
starting org.apache.spark.deploy.master.Master, logging to /data/soft/spark-2.4.3-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.master.Master-1-bigdata01.out
bigdata02: starting org.apache.spark.deploy.worker.Worker, logging to /data/soft/spark-2.4.3-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-bigdata02.out
bigdata03: starting org.apache.spark.deploy.worker.Worker, logging to /data/soft/spark-2.4.3-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-bigdata03.out
  1. 验证

在bigdata01上执行jps,能看到Master进程即可

[root@bigdata01 spark-2.4.3-bin-hadoop2.7]# jps
1731 Master

在bigdata02和bigdata03上执行jps,能看到Worker进程即可

[root@bigdata02 ~]# jps
1714 Worker
[root@bigdata03 ~]# jps
1707 Worker

还可以访问主节点的8080端口来查看集群信息

http://bigdata01:8080/

图片描述

这就是Spark的独立集群

  1. 提交任务

那我们尝试向这个Spark独立集群提交一个spark任务

提交任务的命令该如何写呢?

来看一下Spark的官方文档

图片描述

图片描述

图片描述

图片描述

图片描述

需要使用bin目录下的spark-submit脚本提交任务

--class 指定需要指定的入口类,表示计算π值

--master指定集群的地址

接着指定需要提交的任务jar包,最后的一个参数是计算π值这个任务自身需要的

[root@bigdata01 spark-2.4.3-bin-hadoop2.7]# bin/spark-submit  --class org.apache.spark.examples.SparkPi --master spark://bigdata01:7077 examples/jars/spark-examples_2.11-2.4.3.jar 2

提交之后可以到Spark的8080 web界面查看任务信息

图片描述

  1. 停止Spark集群

在主节点 bigdata01上执行

[root@bigdata01 spark-2.4.3-bin-hadoop2.7]# sbin/stop-all.sh
bigdata03: stopping org.apache.spark.deploy.worker.Worker
bigdata02: stopping org.apache.spark.deploy.worker.Worker
stopping org.apache.spark.deploy.master.Master

ON YARN

ON YARN模式很简单,

先保证有一个Hadoop集群,然后只需要部署一个Spark的客户端节点即可,不需要启动任何进程,

注意:Spark的客户端节点同时也需要是Hadoop的客户端节点,因为Spark需要依赖于Hadoop

我们的Hadoop集群是bigdata01、bigdata02、bigdata03

那我们可以选择把Spark部署在一个单独的节点上就可以了,其实就类似于我们之前部署Hadoop的客户端节点。

在这我们使用bigdata04来部署spark on yarn,因为这个节点同时也是Hadoop的客户端节点。

  1. 将spark-2.4.3-bin-hadoop2.7.tgz上传到bigdata04的/data/soft目录中

  2. 解压

[root@bigdata01 soft]# tar -zxvf spark-2.4.3-bin-hadoop2.7.tgz
  1. 重命名spark-env.sh.template
[root@bigdata01 soft]# cd spark-2.4.3-bin-hadoop2.7/conf/
[root@bigdata01 conf]# mv spark-env.sh.template  spark-env.sh
  1. 修改spark-env.sh

在文件末尾增加这两行内容,指定JAVA_HOME和Hadoop的配置文件目录

export JAVA_HOME=/data/soft/jdk1.8
export HADOOP_CONF_DIR=/data/soft/hadoop-3.2.0/etc/hadoop
  1. 提交任务

那我们通过这个spark客户点节点,向Hadoop集群上提交spark任务

[root@bigdata04 spark-2.4.3-bin-hadoop2.7]# bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster examples/jars/spark-examples_2.11-2.4.3.jar 2
  1. 可以到YARN的8088界面查看提交上去的任务信息

图片描述

此时就可以使用ON YARN模式来执行Spark任务了。

results matching ""

    No results matching ""