Spark环境搭建——HA高可用模式 | 博文精选

来源 | Alice菌

编译 | CryptoShadow,责编 | Carol

出品 | CSDN云计算(ID:CSDNcloud)

 

本文为大家带来的是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"

参数说明:

  • 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

测试主备切换

  1. 在node01上使用jps查看master进程id

  2. 使用kill -9 id号强制结束该进程

  3. 稍等片刻后刷新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中查看结果

本次分享就是这样啦,欢迎评论区与我们讨论!

CSDNx巨杉大学联合认证学习,免费开放!“分布式数据库集训营”帮助您从零开始学习分布式数据库、分布式架构知识,现在加入活动,完成课程还将专属礼品。快来参加吧~

了解详情:http://www.sequoiadb.com/cn/university-camp

推荐阅读:稳定、可扩展、模块化、简化部署过程、版本控制……一文看懂 Kubernetes 到底如何运用!
Java老矣,尚能饭否?2020 Java生态系统报告出炉
面对 MySQL 查询索引失效,程序员的六大优化技巧!
隐身术?登顶 GitHub Top1:200 行 JS 代码让画面人物瞬间消失!
Facebook最新研究:无需额外训练AI,即可加速NLP任务
耐克为何不接受加密货币付款?
真香,朕在看了!点击“阅读原文”,即可报名
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值