虽然spark master挂掉的几率很低,不过还是被我遇到了一次。以前在spark standalone的文章中也介绍过standalone的ha,现在详细说下部署流程,其实也比较简单。

一.机器

zookeeper集群

zk1:2181
zk2:2181
zk3:2181

spark master

spark-m1
spark-m2

spark worker

若干

二.步骤

1.进入spark-m1

修改conf/spark-env.sh

vi spark-env.sh
export SPARK_MASTER_IP=spark-m1
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=zk1:2181,zk2:2181,zk3:2181 -Dspark.deploy.zookeeper.dir=/spark"

启动master和slaves

./sbin/start-master.sh
./sbin/start-slaves.sh

2.进入spark-m2

修改conf/spark-env.sh

vi spark-env.sh
export SPARK_MASTER_IP=spark-m2
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=zk1:2181,zk2:2181,zk3:2181 -Dspark.deploy.zookeeper.dir=/spark"

启动master和slaves

./sbin/start-master.sh
./sbin/start-slaves.sh

三.检测

在spark-m1的web ui中可以看到状态

spark-m2中可以看到处于STANDBY状态

application提交时,master改为

--master spark://spark-m1:7077,spark-m2:7077

spark shell 测试

在spark-m1中启动spark Shell

spark-shell --master spark://spark-m1:7077,spark-m2:7077

连接后关闭spark-m1 master

./bin/stop-master.sh

发现spark-shell不会断开而是转到spark-m2的master上继续执行(该过程持续大概1分钟,woker会重新注册到spark-m2上),同时spark-m2变为alive状态。

可以在spark-m2的master日志中看到:



15/08/17 14:45:35 INFO ZooKeeperLeaderElectionAgent: We have gained leadership

15/08/17 14:45:36 INFO Master: I have been elected leader! New state: RECOVERING

15/08/17 14:45:36 INFO Master: Trying to recover worker:...

15/08/17 14:45:36 INFO Master: Trying to recover worker: ...

15/08/17 14:45:36 INFO Master: Trying to recover worker: ...

......

15/08/17 14:45:36 INFO Master: Worker has been re-registered: worker-...

15/08/17 14:45:36 INFO Master: Worker has been re-registered: worker-...

15/08/17 14:45:36 INFO Master: Worker has been re-registered: worker-...

...

15/08/17 14:45:36 INFO Master: Recovery complete - resuming operations!

部署结束

spark standalone zookeeper HA部署方式的更多相关文章

  1. Spark Standalone模式HA环境搭建

    Spark Standalone模式常见的HA部署方式有两种:基于文件系统的HA和基于ZK的HA 本篇只介绍基于ZK的HA环境搭建: $SPARK_HOME/conf/spark-env.sh 添加S ...

  2. Spark的四种部署方式并对应四种提交方式

    1 Local模式     本地模式  local模式 一台机器即可,开箱即用 不指定master,或者 --master  local  local[N]  local[*] local模式下,使用 ...

  3. spark standalone集群部署 实践记录

    本文记录了一次搭建spark-standalone模式集群的过程,我准备了3个虚拟机服务器,三个centos系统的虚拟机. 环境准备: -每台上安装java1.8 -以及scala2.11.x (x代 ...

  4. 【Spark】Spark的Standalone模式安装部署

    Spark执行模式 Spark 有非常多种模式,最简单就是单机本地模式,还有单机伪分布式模式,复杂的则执行在集群中,眼下能非常好的执行在 Yarn和 Mesos 中.当然 Spark 还有自带的 St ...

  5. spark运行模式之二:Spark的Standalone模式安装部署

    Spark运行模式 Spark 有很多种模式,最简单就是单机本地模式,还有单机伪分布式模式,复杂的则运行在集群中,目前能很好的运行在 Yarn和 Mesos 中,当然 Spark 还有自带的 Stan ...

  6. Spark介绍及安装部署

    一.Spark介绍 1.1 Apache Spark Apache Spark是一个围绕速度.易用性和复杂分析构建的大数据处理框架(没有数据存储).最初在2009年由加州大学伯克利分校的AMPLab开 ...

  7. Windows下IntelliJ IDEA中运行Spark Standalone

    ZHUAN http://www.cnblogs.com/one--way/archive/2016/08/29/5818989.html http://www.cnblogs.com/one--wa ...

  8. Harbor HA部署-使用Ceph RADOS后端

    1. 前言 Harbor 1.4.0版本开始提供了HA部署方式,和非HA的主要区别就是把有状态的服务分离出来,使用外部集群,而不是运行在本地的容器上.而无状态的服务则可以部署在多个节点上,通过配置上层 ...

  9. Apache Spark源码走读之7 -- Standalone部署方式分析

    欢迎转载,转载请注明出处,徽沪一郎. 楔子 在Spark源码走读系列之2中曾经提到Spark能以Standalone的方式来运行cluster,但没有对Application的提交与具体运行流程做详细 ...

随机推荐

  1. JVM学习笔记

    1. JVM中的直接引用和符号引用 JVM在装载class文件的时候,会有一步是将符号引用解析为直接引用的过程. 那么这里的直接引用到底是什么呢? 对于指向“类型”[Class对象].类变量.类方法的 ...

  2. java项目——数据结构实验报告

    java项目——数据结构总结报告 20135315  宋宸宁 实验要求 1.用java语言实现数据结构中的线性表.哈希表.树.图.队列.堆栈.排序查找算法的类. 2.设计集合框架,使用泛型实现各类. ...

  3. php--数据库三范式

    关系数据库的几种设计范式介绍1.第一范式(1NF) 在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库. 所谓第一范式(1NF)是指数据 ...

  4. RelativeLayout不能调用measure去直接测量子元素

    RelativeLayout在实现onMeasure方法时并没有像LinearLayout一样去重写如下代码: @Override protected void onMeasure(int width ...

  5. IOS事件处理机制(关于触发者和响应者的确认)

    事件处理机制 在iOS中发生触摸后,事件会加入到UIApplication事件队列(在这个系列关于iOS开发的第一篇文章中我们分析iOS程序原理的时候就说过程序运行后UIApplication会循环监 ...

  6. Magento Table Rate运费国家代码汇总

    Magento Table Rate是三种内置未调用第三方API运费方式中最强大的一个.通过设置国家,区域,邮编,价格来划分不同的运费等级.该方式基本能够满足轻量级的B2C商城的运费模式.这里收集下国 ...

  7. Python迁移MySQL数据到MongoDB脚本

    MongoDB是一个文档数据库,在存储小文件方面存在天然优势.随着业务求的变化,需要将线上MySQL数据库中的行记录,导入到MongoDB中文档记录. 一.场景:线上MySQL数据库某表迁移到Mong ...

  8. perl常见符号

    =>  键值对,左键右值 -> 引用,相当于java中的 [对象.方法名]中的点号 :: 表示调用类的一个方法 % 散列的标志,定义一个键值对类型的 @ 数组的标志 $ 标量的标志 =~ ...

  9. DOS - for

    遍历当前目录,显示文件/文件夹列表 for /f "usebackq" %i in (`dir /b`) do echo %i 注意点: 1.%i用于dos窗口,batch中需要使 ...

  10. SQL Server Transaction Log Truncate && Shrink

    目录 什么是事务日志 事务日志的组成 事务日志大小维护方法 Truncate Shrink 索引碎片 总结 什么是事务日志 Transaction log   是对数据库管理系统执行的一系列动作的记录 ...