Spark集群高可用HA配置
本文中的Spark集群包含三个节点,分别是Master,Worker1,Worker2。
1、在Master机器上安装Zookeeper,本文安装在/usr/etc目录下
2、在Master机器配置Zookeeper
2.1、cp /usr/etc/zookeeper-3.4.10/conf/zoo_sample.cfg /usr/etc/zookeeper-3.4.10/conf/zoo.cfg
2.2、在安装目录下创建data,logs目录:mkdir data;mkdir logs;
2.3、vi /usr/etc/zookeeper-3.4.10/conf/zoo.cfg,增加内容如下:
dataDir=/usr/etc/zookeeper-3.4./data
dataLogDir=/usr/etc/zookeeper-3.4./logs
server.=Master::
server.=Worker1::
server.=Worker2::
2.4、在创建的data目录下创建myid文件,并修改内容为0(对应配置中的server.0)
3、拷贝安装文件到Worker1,Worker2机器
scp -r /usr/etc/zookeeper-3.4. root@Worker1:/usr/etc/zookeeper-3.4.
scp -r /usr/etc/zookeeper-3.4. root@Worker2:/usr/etc/zookeeper-3.4.
3.1、修改data目录下的myid文件,Worker1上的内容为1,Worker2上的内容为2。
4、在Master、Worker1、Worker2上配置系统环境变量:
vi /etc/profile
增加Zookeeper内容:
exprot ZOOKEEPER_HOME=/usr/etc/zookeeper-3.4.
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SPARK_HOME/bin:$SPARK_HOME/sbin:$HIVE_HOME/bin:$SCALA_HOME/bin:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH
5、在Master、Worker1、Worker2上运行Zookeeper
./bin/zkServer.sh start
运行./bin/zkServer.sh status查看运行状态,如有问题可通过安装目录下的zookeeper.out日志文件排查。
成功后,运行jps,可看到QuorumPeerMain进程
6、配置Spark
vi /usr/etc/spark-2.3.0-bin-hadoop2.7/conf/spark-evn.sh
修改内容如下:
#export SPARK_MASTER_IP=Master #注释掉该行,Spark自己管理集群的状态
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=Master:2181,Worker1:2181,Worker2:2181 -Dspark.deploy.zookeeper.dir=/spark" #通过Zookeeper管理集群状态
7、测试Spark集群工作状态
7.1、启动集群
在Master启动hdfs:start-dfs.sh
在Master启动spark:/usr/etc/spark-2.3.0-bin-hadoop2.7/sbin/start-all.sh
在Worker1,Worker2分别启动spark-master:/usr/etc/spark-2.3.0-bin-hadoop2.7/sbin/start-master.sh
在Master通过浏览器访问Master:8080,Worker1:8080,Worker2:8080,Spark Master的运行状态在Master上是 ALIVE,在Worker1,Worker2上是STANDBY
7.2、测试Master节点出故障的情况
7.2.1、在任意节点上运行spark-shell:/usr/etc/spark-2.3.0-bin-hadoop2.7/bin/spark-shell --master spark://Master:7077,Worker1:7077,Worker2:7077
7.2.2、在Master上运行/usr/etc/spark-2.3.0-bin-hadoop2.7/sbin/stop-master.sh停止Master服务,发现spark-shell控制台输出以下内容:Connection to Master:7077 failed; waiting for master to reconnect...,过一会通过浏览器访问Worker1:8080,发现此时Worker1机器上Spark Master的状态已经变成了ALIVE。
Spark集群高可用HA配置的更多相关文章
- Eureka 集群高可用配置.
SERVER:1 server: port: 1111 eureka: instance: hostname: ${spring.cloud.client.ip-address} instance-i ...
- CentOS7安装CDH 第七章:CDH集群Hadoop的HA配置
相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...
- Rabbitmq集群高可用测试
Rabbitmq集群高可用 RabbitMQ是用erlang开发的,集群非常方便,因为erlang天生就是一门分布式语言,但其本身并不支持负载均衡. Rabbit模式大概分为以下三种:单一模式.普通模 ...
- bitmq集群高可用测试
Rabbitmq集群高可用 RabbitMQ是用erlang开发的,集群非常方便,因为erlang天生就是一门分布式语言,但其本身并不支持负载均衡. Rabbit模式大概分为以下三种:单一模式.普通模 ...
- hadoop+zookeeper集群高可用搭建
hadoop+zookeeper集群高可用搭建 Senerity 发布于 2 ...
- RabbitMQ从零到集群高可用(.NetCore5.0) -高可用集群构建落地
系列文章: RabbitMQ从零到集群高可用(.NetCore5.0) - RabbitMQ简介和六种工作模式详解 RabbitMQ从零到集群高可用(.NetCore5.0) - 死信队列,延时队列 ...
- openstack pike 集群高可用 安装 部署 目录汇总
# openstack pike 集群高可用 安装部署#安装环境 centos 7 史上最详细的openstack pike版 部署文档欢迎经验分享,欢迎笔记分享欢迎留言,或加QQ群663105353 ...
- 浅谈MySQL集群高可用架构
前言 高可用架构对于互联网服务基本是标配,无论是应用服务还是数据库服务都需要做到高可用.对于一个系统而言,可能包含很多模块,比如前端应用,缓存,数据库,搜索,消息队列等,每个模块都需要做到高可用,才能 ...
- 集群高可用之lvs+keepalive
集群高可用之lvs+keepalive keepalive简介: 负载均衡架构依赖于知名的IPVS内核模块,keepalive由一组检查器根据服务器的健康情况动态维护和管理服务器池.keepalive ...
随机推荐
- 5 -- Hibernate的基本用法 --2 1 Hibernate 下载和安装
1. 下载Hibernate压缩包 2. 解压:文件结构 ⊙ documentation : 该路径下存放了Hibernate的相关文档,包括Hibernate的参考文档和API文档等. ⊙ lib ...
- 8 -- 深入使用Spring -- 7...3 让Spring管理控制器
8.7.3 让Spring管理控制器 让Spring容器来管理应用中的控制器,可以充分利用Spring的IoC特性,但需要将配置Struts 2 的控制器部署在Spring容器中,因此导致配置文件冗余 ...
- window.location.href
WEB设置首页 <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-f ...
- Objective-C语法之动态类型(isKindOfClass, isMemberOfClass,id)等
对象在运行时获取其类型的能力称为内省.内省可以有多种方法实现. 判断对象类型 -(BOOL) isKindOfClass: classObj 判断是否是这个类或者这个类的子类的实例/ 判断是否是这个类 ...
- Anaconda本地安装python库
很多时候我们需要自己手动安装一些库,例如因为网络原因,或者下载源没有这个包. 以Windows环境为例,无论是pip安装还是anaconda安装,最终的包都是安装在,工作目录/Lib/site-pac ...
- 【RF库XML测试】Element Attribute Should Be
Name:Element Attribute Should BeSource:XML <test library>Arguments:[ source | name | expected ...
- Django 访问数据库
通过命令行方式访问数据库: [root@localhost web]$ python manage.py shell # 进入交互模式(先安装ipython) In [1]: from blog.mo ...
- 用shell查找某目录下的最大文件
这是一个很有趣的问题,因为作为一个shell菜鸟,我第一时间是没有任何想法的.心里纳闷为什么这样的操作Linux居然没有直接的命令实现这样的查询. 很自然地,第一感觉就是用awk去实现,因为菜鸟我看a ...
- 音频中PCM的概念
本文取自由http://blog.csdn.net/droidphone一部分 1. PCM是什么 PCM是英文Pulse-code modulation的缩写,中文译名是脉冲编码调制.我们知道在现实 ...
- 【docker】 追加端口映射时 报错 WARNING: IPv4 forwarding is disabled. Networking will not work.
解决办法: vi /etc/sysctl.conf 添加如下代码: net.ipv4.ip_forward= 重启network服务 systemctl restart network 查看: sys ...