Spark学习(二) 之集群搭建(standalone、HA-standalone、 spark on yarn)

Spark集群搭建的三种方式详解 Local 模式: 在本地模式下,Spark 将作为一个单独的 Java 进程在本地运行,不需要启动额外的集群资源。本地模式适用于开发和调试,可以快速运行 Spark 应用程序并查看结果,而不需要配置和管理集群资源。Standalone 模式: Standalone 模式是 Spark 提供的最简单的部署方式,也是默认的部署模式。在 Standalone 模式下,Spark 自身作为一个独立的集群运行,可以通过启动 Spark Master 和 Spark Worker 进程来启动一个完整的 Spark 阅读详情

(一) Spark安装包下载
(1)官网下载
http://spark.apache.org/downloads.html
spark

Spark standalone

(一) 安装过程

1、上传并解压缩

tar -zxvf spark-2.3.0-bin-hadoop2.7.tgz -C apps/

2、进入spark/conf修改配置文件

cp slaves.template slaves
 cp spark-env.sh.template spark-env.sh

3、修改 slaves文件,在其中添加从节点

node02
node03
node04

4、修改 spark-env.sh文件

# export JAVA_HOME=/opt/software/jdk1.8.0_151 # centOS 7 需要引入JAVA_HOME
SPARK_MASTER_IP=node01 master所在节点
SPARK_MASTER_PORT=7077 master资源通信端口
SPARK_WORKER_CORES=2 worker管理的核数
SPARK_WORKER_MEMORY=800m worker管理的内存
SPARK_WORKER_INSTANCES=1 每个节点启动worker的个数
SPARK_WORKER_DIR=/var/zgl/spark worker的工作目录
# SPARK_MASTER_WEBUI_PORT=8888 WebUI的端口号,默认为8080,与tomcat冲突

5、进入 sbin 目录,做如下修改,防止这两个命令与 hadoop 命令冲突

mv start-all.sh start-spark.sh 
mv stop-all.sh  stop-spark.sh  

6、将配置好的spark安装包发送到其他节点和客户端节点

# scp -r spark-2.3.0 node02:`pwd`
# scp -r spark-2.3.0 node03:`pwd`
# scp -r spark-2.3.0 node04:`pwd`
# scp -r spark-2.3.0 client:`pwd`

7、在 node01 和 client 节点上配置 spark 的环境变量,配置到 ~/.bashrc 中

vim ~/.bashrc

export SPARK_HOME=/opt/zgl/spark-1.6.3
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
(二)启动

1、先启动zookeeper集群
所有zookeeper节点启动

zkServer.sh start

2、在node01启动HDFS集群

start-dfs.sh

3、在 node01 上启动集群

start-spark.sh

4、jps 检查集群是否启动

(三)验证

1、在客户端提交 spark 提供的 SparkPi 程序(该程序通过概率计算 π 的值)

  • 注意提交命令一行写完,不要换行
    任务很可能会因为内存不足导致失败
spark-submit  master的url  执行器所使用的内存  运行的程序的全类名  程序jar包所在的位置  提供一个参数(参数越大,计算的π值越精准) 
spark-submit --master spark://node01:7077 --executor-memory 500m  
--class org.apache.spark.examples.SparkPi  
/opt/software/spark-2.3.0/lib/spark-examples-2.3.0-hadoop2.6.0.jar  
50 

2、可以在 node01:8080 WEBUI页面查看任务
在这里插入图片描述

Spark standalone HA

同 HDFS 的 NameNode,YARN 的 ResourceManager 一样,spark standalone 的 master 也存在单点故障问题,于是同样也就有了基于 zookeeper 监控的高可用模式(spark standalone 还有一种高可用模式是基于本地文件系统,主master挂掉后需要手动切换)

主备切换
  • spark standalone HA 模式中,master(active) 会将元数据同步到 zookeeper 中,元数据中有 worker,driver 和 application 的信息
  • 当 master(active) 挂掉时,zookeeper 会选举出一个 master(standby),被选中的 master(standby) 进入恢复状态 master(recovering)
  • master(recovering) 从 zookeeper 读取元数据,得到元数据后,master(recovering) 会向 worker 节点发送消息,告知主master已经更换
  • 正在正常运行的 worker 在收到通知后,会向 master(recovering) 节点发送响应信息
  • master(recovering) 节点收到响应信息后,会调用自身的completeRecovery()方法,此时未向 master(recovering) 节点发送响应信息的 worker 节点会被认为已经挂掉,从 workers 中删除(workers
    是存储 worker 信息的对象)
  • 短暂的 completeRecovery 状态一闪而过,master(completeRecovery) 成为 active 状态,开始对外提供服务

–主备切换的过程大概需要1~2分钟,此期间集群不接受提交任务的请求,但是已经跑在集群上的任务不会受到影响,会正常执行,这得益于 spark 粗粒度的资源调度
–workers 使用 HashSet 数据结构来存储 worker 信息,是为了防止同一台 worker 节点在 master 中注册两次(worker 节点挂掉但是迅速恢复可能会导致此问题)

集群配置

1、 在上面 standalone 集群配置的基础上,先关闭之前开启的集群

stop-spark.sh

2、在 node01 节点上对 spark 安装包中的 spark-env.sh文件添加如下配置,注意写在一行,不要手动换行,三个参数间使用空格隔开

SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER
 -Dspark.deploy.zookeeper.url=node02:2181,node03:2181,node04:2181 
 -Dspark.deploy.zookeeper.dir=/spark"

官网对三个参数的解释在这里插入图片描述

3、将 spark-env.sh发送到其他节点,进入 spark 安装包的 conf 目录下执行

scp spark-env.sh node02:`pwd`
scp spark-env.sh node03:`pwd`
scp spark-env.sh node04:`pwd`
scp spark-env.sh client:`pwd`

4、选用 node02 节点作为备用的 master 节点,在 node02 节点的 spark 安装包中的 spark-env.sh文件中修改 SPARK_MASTER_IP,令 SPARK_MASTER_IP=node02
5、启动zookeeper,spark集群

zkServer.sh start
start-spark.sh

6、node02启动master(standby状态)

start-master.sh

7、node02:8888 WEBUI页面查看节点状态信息
在这里插入图片描述

将 nodeo1 上的 master 进程 kill 掉,然后观察 master(standby) 的状态变化
在这里插入图片描述

在这里插入图片描述

在客户端提交 spark 提供的 SparkPi 程序

spark-submit --master spark://node01:7077,node02:7077 
--class org.apache.spark.examples.SparkPi 
/opt/software/spark-1.6.3/lib/spark-examples-1.6.3-hadoop2.6.0.jar 
100

在 WEBUI 页面查看任务
在这里插入图片描述

Spark on YARN

spark 应用程序跑在 yarn 集群上很简单,只需要在客户端有 spark 安装包就可以了(用来提交 spark 应用程序)

  1. 在客户端 spark 安装包中配置 spark-env.sh文件,添加如下配置信息
HADOOP_CONF_DIR=/opt/zgl/hadoop-2.6.5/etc/hadoop
  1. 开启 HDFS集群和 YARN集群,客户端提交的应用程序 jar 包会托管在 hdfs 上
  2. 在客户端提交 spark 提供的 SparkPi 程序
spark-submit --master yarn
 --class org.apache.spark.examples.SparkPi 
 /opt/zgl/spark-1.6.3/lib/spark-examples-1.6.3-hadoop2.6.0.jar 
 10000
  1. 在 yarn 的 WebUI 页面查看任务
    在这里插入图片描述

提交任务可能会报下面这个异常,主要是因为虚拟内存超限, contrainer 被 kill,从而导致任务结束

Yarn application has already ended! It might have been killed or unable to launch application master

可以通过在 hadoop 安装包的 yarn-site.xml 文件中配置如下信息来解决

<property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
    <description>是否检查每个任务正使用的物理内存量,如果超过默认值则将其杀死,默认是true </description>
</property>
<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
    <description>Whether virtual memory limits will be enforced for containers</description>
</property>
PySpark | Spark框架简述 | Spark环境搭建 Spark环境搭建Standalone环境搭建Standalone HA环境搭建Spark on YARN环境搭建 阅读详情

相关推荐

Spark-3.2.4 高可用集群安装部署详细图文教程

Spark-3.2.4 高可用集群安装部署详细图文教程

GG Bond 的博客 7714

Spark学习笔记 (Spark2.3 HA集群的分布式安装图文详解

主要介绍了Spark2.3 HA集群的分布式安装,结合图文与实例形式详细分析了Spark2.3 HA集群分布式安装具体下载、安装、配置、启动及执行spark程序等相关操作技巧,需要的朋友可以参考下

Spark深入解析(三):Spark基础解析之Spark环境搭建(不同模式)

学习目标Local本地模式安装启动spark-shell初体验-读取本地文件初体验-读取HDFS文件Standalone集群模式集群角色介绍集群规划修改配置并分发启动和停止查看web界面Standalone-HA高可用模式原理配置HA启动Zookeeper集群启动Spark集群测试HAOn Yarn集群模式准备工作Cluster模式Client模式两种模式的区别 需要资源包,可私信博主! 以下代码...

wzc8961661的博客 2376

Spark学习笔记No.03(StandAlone HAYARN模式)

本周学习StandAlone HAYARN,对StandAlone HASpark on Yarn的两种部署模式进行。

yuanshi985的博客 302

Spark集群搭建

首先,去spark官网下载spark安装包 笔者这次使用的是spark1.6.3、Hadoop2.6版本的jar包 下载完成后,把jar包发送到服务器上进行解压,然后把解压后的文件夹名称改为spark1.6.3. 进入conf目录 修改slave.template-&amp;amp;gt;slave(这里是配置Woker所在节点位置) node02 node03 node04 修改spar...

PowerBlogger的博客 375

YARN 模式的 Spark 安装配置

在Linux中安装Spark后配置YARN模式

CcfXx2000的博客 678

Spark集群搭建

文章目录Spark的四种运行模式standalone 集群搭建standalone集群的大体框架standalone集群步骤1,在node01节点上下载spark安装包2,解压spark-1.6.3-bin-hadoop2.6.tgz安装包3,修改spark配置文件4,将配置好的spark安装包发送到各个节点上5,将启动命令改名6,启动spark7,jps查看各个节点开启的进程 Spark的四种...

Hellomdk的博客 367

SparkStandalone模式之HA集群搭建

SparkStandalone模式之HA集群搭建 前言 本文使用Spark的版本为:spark-2.3.0-bin-hadoop2.7.tgz。 spark集群采用3台机器进行搭建,机器分别是server01,server02,server03。 其中:server01,server02设置为Master,server01,server02,server03为Worker。 ...

Widsom的博客 1008

Spark学习()Spark集群搭建

Spark集群一、Spark集群的四种运行模式、基于StandaloneSpark集群搭建三、基于Standalone的高可用Spark集群搭建 一、Spark集群的四种运行模式 1、Local 单机运行,一般用于开发测试。 2、Yarn Spark客户端直接连接Yarn,不需要额外构建Spark集群。 3、Standalone 构建一个由Master+Worker构成的Spark集群,Spa...

滴水穿石的博客 3890

SparkSpark安装详解

Spark安装详解Spark的详情Spark的安装详解Spark Local的安装Spark Standalone模式Spark On YARN模式Spark HA模式 Spark的详情 Spark的简绍 Spark是一种通用的大数据计算框架,是基于RDD(弹性分布式数据集)的一种计算模型。那到底是什么呢?可能很多人还不是太理解,通俗讲就是可以分布式处理大量集数据的,将大量集数据先拆分,分别进行计算,然后再将计算后的结果进行合并。 为什么使用Spark Spark在存储器内运行程序的运算速度能做到比Had

HR的博客 6088

Spark --最全的安装部署 local本地模式spark安装 spark--standalone集群安装 spark-HA高可用安装 spark on yarn安装

安装部署之前,先来看看为什么要安装它这个版本!!! 我们安装的是Spark2.2.0 目前企业中使用最多的稳定版 使用Apache版还是CDH版? 1.Apache版直接下载官方编译好的基于Apache Hadoop的Spark即可 2.自己下载Spark源码基于CDH Hadoop重新编译 因为CDH5.14版 Spark基于Spark1.6...

kismet 4389

Spark基础入门-第五章:环境搭建-Spark on YARN

Client模式和Cluster模式最最本质的区别是: Driver程序运行在哪里。Client模式:学习测试时使用,生产不推荐(要用也可以,性能略低,稳定性略低)1.Driver运行在Client上,和集群的通信成本高2.Driver输出结果会在客户端显示Cluster模式:生产环境中使用该模式1.Driver程序在YARN集群中,和集群的通信成本低2.Driver输出结果不能在客户端显示。

黑马程序员官方博客 2308

在VMware上搭建Spark集群

搭建Spark Standalone集群搭建Spark on YARN集群搭建Spark HA集群

howard2005的专栏 2351

spark standalone模式HA部署,任务失败重提测试

Standalone集群中Worker汇报资源、提交应用程序、Driver申请资源时都需要与Master进行通信,如果Standalone集群中只有一个Master,当Master挂掉后就会影响以上通信,所以在Standalone集群中配置Master HA就有必要。

weixin_62206215的博客 710

Spark环境搭建教程

Spark环境搭建 Spark Local本地模式 Standalone-独立集群 Standalone-HA Spark-On-Yarn Spark 是一种基于内存的快速、通用、可扩展的大数据分析计算引擎

xgb2018的博客 4527

Spark HA高可用集群搭建(Standalone模式)

Spark HA搭建 Spark Standalone和大部分Master/slave模式一样,都存储Master单点故障问题,解决方式可以基于Zookeeper实现两个Master无缝切换,类似HDFS的NameNode HA(High Availability,高可用)或者YARN的ResourceManager HASpark可以在集群中启动多个Master,并使它们都向...

天涯芳草 1596

Spark学习Spark高可用集群搭建

1、下载Spark安装包官网网址:http://spark.apache.org/downloads.html2、Spark安装过程2.1、上传并解压缩[potter@potter2 ~]$ tar -zxvf spark-2.3.0-bin-hadoop2.7.tgz -C apps/2.2、修改配置文件(1)进入配置文件所在目录/home/potter/apps/spark-2.3.0-bin...

potter 2209

Spark - Standalone搭建HA模式搭建,并使用 Scala、Java、Python 三种语言测试

节点只有一台,一旦主节点宕机,集群便不可使用,此时我们可以多启动几台主节点已达到。模式,那么多主节点,之间的协调肯定是必不可少的,此时可依赖于。的位置,以及主节点的主机,如果数据没有读。先将下载后的安装包上传至。将修改好的安装包上传至。进去到解压目录下,启动。,增加下面配置,如果。安装前需要提前安装好。

小毕超博客 590
上一篇: Spark学习(一)之Spark初识
下一篇: Spark学习(三)之 RDD
thyyyyyyy
博客等级 码龄8年 16粉丝 15原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值