Spark环境搭建——HA高可用模式
2021/6/1 18:29:25
本文主要是介绍Spark环境搭建——HA高可用模式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
本篇博客,Alice为大家带来的是Spark的HA高可用环境搭建的教程。
原理
Spark Standalone集群是Master-Slaves架构的集群模式,和大部分的Master-Slaves结构集群一样,存在着Master单点故障
的问题。
如何解决这个单点故障的问题,Spark提供了两种方案:
1.基于文件系统的单点恢复(Single-Node Recovery with Local File System)–只能用于开发或测试环境。
2.基于zookeeper的Standby Masters(Standby Masters with ZooKeeper)–可以用于生产环境。
配置HA
该HA方案使用起来很简单,首先启动一个ZooKeeper集群,然后在不同节点上启动Master,注意这些节点需要具有相同的zookeeper配置。
- 先停止Sprak集群
/export/servers/spark/sbin/stop-all.sh
- 在node01上配置:
vim /export/servers/spark/conf/spark-env.sh
- 注释掉Master配置
#export SPARK_MASTER_HOST=node01
- 在spark-env.sh添加SPARK_DAEMON_JAVA_OPTS,内容如下:
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER
-Dspark.deploy.zookeeper.url=node01:2181,node02:2181,node03:2181
-Dspark.deploy.zookeeper.dir=/spark"
参数说明:
spark.deploy.recoveryMode:恢复模式 spark.deploy.zookeeper.url:ZooKeeper的Server地址 spark.deploy.zookeeper.dir:保存集群元数据信息的文件、目录。包括Worker、Driver、Application信息。
- scp到其他节点
scp /export/servers/spark/conf/spark-env.sh
node02:/export/servers/spark/conf/
scp /export/servers/spark/conf/spark-env.sh
node03:/export/servers/spark/conf/
启动zk集群
zkServer.sh status
zkServer.sh stop
zkServer.sh start
启动Spark集群
- node01上启动Spark集群执行
/export/servers/spark/sbin/start-all.sh
- 在node02上再单独只起个master:
/export/servers/spark/sbin/start-master.sh
- 注意:
在普通模式下启动spark集群
只需要在主节点上执行start-all.sh 就可以了
在高可用模式下启动spark集群
先需要在任意一台主节点上执行start-all.sh
然后在另外一台主节点上单独执行start-master.sh
- 查看node01和node02
http://node01:8080/
http://node02:8080/
可以观察到有一台状态为StandBy
测试HA
测试主备切换
- 在node01上使用jps查看master进程id
- 使用kill -9 id号强制结束该进程
- 稍等片刻后刷新node02的web界面发现node02为Alive
- 测试集群模式提交任务
1.集群模式启动spark-shell
/export/servers/spark/bin/spark-shell --master spark://node01:7077,node02:7077
2.运行程序
sc.textFile("hdfs://node01:8020/wordcount/input/words.txt") .flatMap(_.split(" ")).map((_, 1)).reduceByKey(_ + _) .saveAsTextFile("hdfs://node01:8020/wordcount/output7")
在hue中查看结果
本次的分享就到这里,受益的小伙伴或对大数据技术感兴趣的朋友记得点赞关注Alice哟(^U^)ノ~YO
这篇关于Spark环境搭建——HA高可用模式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-29设计Element UI表单组件居然如此简单!
- 2024-12-28一步到位:购买适合 SEO 的域名全攻略
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign学习入门:轻松掌握微服务通信
- 2024-12-27OpenFeign学习入门:轻松掌握微服务间的HTTP请求
- 2024-12-27JDK17新特性学习入门:简洁教程带你轻松上手
- 2024-12-27JMeter传递token学习入门教程
- 2024-12-27JMeter压测学习入门指南
- 2024-12-27JWT单点登录学习入门指南