spark 集群搭建(转载)

Spark集群
一、Spark集群的四种运行模式
二、基于Standalone的Spark集群搭建
三、Standalone基于zookeeper的高可用Spark集群搭建
1、Spark HA主备切换的过程
2、搭建Spark HA
3、测试Spark HA:
一、Spark集群的四种运行模式
1、Local
单机运行,一般用于开发测试。
2、Yarn
Spark客户端直接连接Yarn,不需要额外构建Spark集群。
3、Standalone
构建一个由Master+Worker构成的Spark集群,Spark运行在集群中。
4、Mesos
Spark客户端直接连接Mesos,不需要额外构建Spark集群。

二、基于Standalone的Spark集群搭建
1、在node01节点解压spark-1.6.3-bin-hadoop2.6.tgz安装包

tar -zxvf spark-1.6.3-bin-hadoop2.6.tgz
1
2、为了防止spark中的start-all.sh与HDFS中的命令冲突,需要将spark安装包下sbin目录中的start-all.sh修改为start-1.6.3.sh

mv start-all.sh start-1.6.3.sh
1
3、配置环境变量

export SPARK_HOME=/opt/software/spark-1.6.3
export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin
1
2
4、在conf目录下分别修改slave.template为slave,spark-env.template为spark-env.sh

mv slave.template slave

mv spark-env.template spark-env.sh
1
2
3
5、配置slave文件,确定Worker所在的节点

node02
node03
node04
1
2
3
6、配置spark-env.sh文件

#主节点的IP
SPARK_MASTER_IP=7077
#主节点的端口号,用来与worker通信
SPARK_MASTER_PORT=node01
#每一个worker进程所能管理的核数
SPARK_WORKER_CORES=3
#每一个worker进程所能管理的内存数
SPARK_WORKER_MEMORY=2G
#每个节点启动worker的实例数
SPARK_WORKER_INSTANCES=1
#worker的工作目录区
SPARK_WORKER_DIR=自定义的目录
1
2
3
4
5
6
7
8
9
10
11
12
注意:

如果CPU是4核8线程,那么这个核是支持超线程的核。
如果是普通的核,一个核在一个时刻只能处理一个线程。
如果节点有8个core,并且支持超线程,此时可以将这个节点看成由16个core组成。
7、将配置好的spark安装包发送到各个节点上

scp -r spark-1.6.3 root@node2:`pwd`
scp -r spark-1.6.3 root@node3:`pwd`
scp -r spark-1.6.3 root@node4:`pwd`
1
2
3
8、启动Spark

start-1.6.3.sh
1
spark界面如下:

9、提交Application到集群中,显示如下监控页面

10、计算结果如下

监控页面变化

至此,基于standalone的spark集群搭建完成。

三、Standalone基于zookeeper的高可用Spark集群搭建
1、Spark HA主备切换的过程


客户端提交一个AApplication,Master中会存储各个Worker的信息,WaitingApps、WaitingDrivers等信息。
为了防止Master发生单点故障,丢失元数据,Master会将这些信息同步至zookeeper的小型文件系统的目录中。
一旦Master挂掉,zookeeper会选取备用Master继续任务。
备用Master会去zookeeper的文件系统中拉取元数据,然后基于根据拉来的worker信息去通知worker易主,此后worker会给备用Master返回心跳。
2、搭建Spark HA
1、切换至/opt/software/spark/spark-1.6.3/conf/目录下,在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-1106"
1
解释:

Dspark.deploy.recoveryMode=ZOOKEEPER代表Spark HA是基于zookeeper。
Dspark.deploy.zookeeper.url=node02:2181,node03:2181,node04:2181代表zookeeper集群在哪个节点启动zookeeper集群在哪个节点启动**
Dspark.deploy.zookeeper.dir=/spark-1106zookeeper内部的小型文件系统的目录
2、将spark-env.sh分别发送给node02、node03、node04节点上。
注意:要将node02的SPARK_MASTER_IP修改为node02,因为要在node02上启动备用Master。
3、在node02、node03、node04节点启动zookeeper

zkServer.sh start
1
4、在node01节点上启动Spark

start-1.6.3.sh 
1
5、在node02上启动Master

start-master.sh
1
查看监控页面,node01对应的Master是ALIVE状态

node02对应Master是STANDBY状态


3、测试Spark HA:
为了测试Master是否可以主备切换,现将node01的Master进程kill,然后观察备用Master是否切换为ALIVE。


此时Spark监控页面node02状态切换至ALIVE状态,说明主备切换完成。

————————————————
版权声明:本文为CSDN博主「B&&D」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42825815/article/details/84071702

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值