本课主题

  • Master HA 解析
  • Master HA 解析源码分享

Master HA 解析

  1. 生产环境下一般采用 ZooKeeper 做 HA,且建义为 3台 Master, ZooKeeper 会自动管理 Master 的切换
  2. 采用 ZooKeeper 做 HA 的时候,ZooKeeper 会负责保存整个 Spark 集群运行的元数据:所有 Worker 的信息, 所有 Driver 的信息, 应用程序的信息 和 所有Executor 的信息
  3. ZooKeeper 遇到当前Active 级别的Master 出现故障的时候从Standby Masters 中选取出一台作为Active , 但是要注意,被选举后到成为真正的Active Master 之间需要从ZooKeeper 中获取集群当前运行状态的元数据信息并进行恢复;
  4. 在 Master 切换的过程中,所有已经在运行的程序皆正常运行!因为 Spark Application 在运行前就已经通过 Cluster Manager 获得了计算资源 所以在运行时 Job 本身的调度和处理和 Master 是没有任何关系的!
  5. 在Master 的切换过程中唯一的影响是不能提交新的Job: 一方面不能提交新的应用程序给集群,因为只有Active Master 才能接受新的程序的提交请求;另外一方面,已经运行的程序也不能够因为Action 操作触发新的Job 的提交请求。

Spark Master HA on ZooKeeper 切換流程圖

Master HA 的四大方式

  1. Master HA 的四大方式:分別是 ZOOKEEPER,FILESYSTEM, CUSTOM, NONE;
  2. 需要说明的是:
    • ZOOKEEPER 是自動管理 Master;
    • FILESYSTEM 的方式在 Master 出现突障后需要手动启动机器,机器启动后会立即成为 Active 级别的 Master 来对外提供服务(接受应用程序提交的请求、接受新的 Job 运行的请求)
    • CUSTOM 的方式允许用户自定义 Master HA 的实现,这对于高级用户特别有用;
    • NONE,这是默应情况,当我们下载安装了 Spark 集群中就是采用这种方式,该方式不会持久化集群的数据, Driver, Application, Worker and Executor. Master 启动起立即管理集群;


  3. Persistence Engine 中有一个至关重要的方法 persists 来实现数据持久化

    readPersistedData 来获取恢复集群中的元数据

    现在去看看它的createdLeaderElectionAgent的方法

  4. FILESYSTEM 和 NONE 的方式均是采用 MonarchyLeaderAgent 的方式来完成 Leader的选举的,其实际实现是直接把传入的 Master 作为 Leader

  5. NONE 的方式根本不需要持久化引擎,它为什么要搞一个BlackHoleEngine
  6. 对一些WorkerState状态为UNKNOWN 的话(Worker不响应),就把它删除掉,如果你是以集群方式运行的话,driver 失败话可以重新启动一下,最后把状态变回ALIVE,这里注意要加入--supervise这一个参数。

[总结部份]

更新中......

转载于:https://www.cnblogs.com/sky-sql/p/9078707.html

Master HA彻底解密相关推荐

  1. Master HA源码解析

    1.Master HA概述 Spark在生产上做HA一般采用的是通过zookeeper的方式,配置3个master的话是比较可靠的方式.采用zookeeper做HA的话zookeeper会保存整个Sp ...

  2. MariaDB数据库介绍三、MHA(Master HA)实现主节点故障转移

    一.MHA MHA是开源的MySQL的高可用程序,它为MySQL的主从复制架构提供了主节点故障自动转移的功能,它会监控master节点故障的时候,会提升其中的拥有最新数据的slave节点称为新的mas ...

  3. MySQL MHA: 一种master高可用的主从复制解决方案

    2019独角兽企业重金招聘Python工程师标准>>> 大纲 前言 MHA的架构 环境部署 实验步骤 总结 前言 上篇文章我们实现了MySQL的主从复制, 但是我们之前就说过, 主从 ...

  4. Spark _16 _SparkUIMaster HA

    SparkUI SparkUI界面介绍 可以指定提交Application的名称 ./spark-shell --master  spark://henu1:7077 --name myapp 配置h ...

  5. K8S集群Master高可用实践

    本文将在前文基础上介绍k8s集群的高可用实践,一般来讲,k8s集群高可用主要包含以下几个内容: 1.etcd集群高可用 2.集群dns服务高可用 3.kube-apiserver.kube-contr ...

  6. Spark源码分析之Master启动和通信机制

    Master主要就是用于管理集群,负责资源的调度什么的.它继承了ThreadSafeRpcEndpoint和LeaderElectable,由于继承ThreadSafeRpcEndpoint,所以Ma ...

  7. 私有云中Kubernetes Cluster HA方案

    2019独角兽企业重金招聘Python工程师标准>>> 更多关于Kubernetes的深度文章,请到我oschina/WaltonWang的博客主页. Kubernetes Mast ...

  8. 全面学习Prometheus

    Prometheus是继Kubernetes后第2个正式加入CNCF基金会的项目,容器和云原生领域事实的监控标准解决方案.在这次分享将从Prometheus的基础说起,学习和了解Prometheus强 ...

  9. Kubernetes 集群基于 Rook 搭建 Ceph 分布式存储系统

    文章目录 1.Rook & Ceph 介绍 1.1.Rook 1.2.Ceph 2.环境.软件准备 3.Kubernetes HA 集群搭建 4.部署 Rook Operator 5.配置 R ...

最新文章

  1. 【Spring学习笔记-MVC-13.2】Spring MVC之多文件上传
  2. POJ 2240 Arbitrage
  3. 用户关联角色操作-代码实现
  4. php tp框架做选中删除,关于thinkphp框架实现删除和批量删除的分析
  5. 计算机应用基础一级考试题库,2018一级结构工程师《计算机应用基础》题库及答案(一)...
  6. P1152 欢乐的跳( python3实现)
  7. Create MSSQL Procedure
  8. sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock
  9. MySQL基础一些概念一些用法
  10. 禅道---Bug管理模块
  11. 人均维护服务器数量,华为FusionCube一体机助力金华职业技术学院构建最佳云平台...
  12. 51nod 1299 监狱逃离
  13. linux 该文件的owner,Linux修改文件/目录的owner/group方法(转载)
  14. 【文档生成工具Doxygen介绍】
  15. linux 查找文件是否含有某个字符串
  16. 外贸软件对出口公司的作用
  17. 【成神之路】Http网络相关面试题
  18. QT解决报错registered using qRegisterMetaType()
  19. 为什么不使用多线程?
  20. 球半篮球分析,NBA总决赛:勇士VS凯尔特人

热门文章

  1. 中国信通院栗蔚解读“云计算发展现状与可信云评估” 肯定“信创云基座”的可信能力
  2. Java并发编程的艺术(一)
  3. [思语]_一花一世界,一树一菩提
  4. Unity 编辑器开发实战【Custom Editor】- 为UI视图制作动画编辑器
  5. Linux服务--DHCP中继
  6. 一、搜索引擎篇-揭开es神秘的面纱
  7. 算法Day8|字符串专题二 剑指 Offer 58 - II. 左旋转字符串,28. 找出字符串中第一个匹配项的下标,459. 重复的子字符串
  8. DDR学习笔记---DDR3基本知识
  9. 安卓recovery菜单中英文对照
  10. 数据结构之冒泡排序算法(图解+分析+代码调优)