Master HA彻底解密
本课主题
- Master HA 解析
- Master HA 解析源码分享
Master HA 解析
- 生产环境下一般采用 ZooKeeper 做 HA,且建义为 3台 Master, ZooKeeper 会自动管理 Master 的切换
- 采用 ZooKeeper 做 HA 的时候,ZooKeeper 会负责保存整个 Spark 集群运行的元数据:所有 Worker 的信息, 所有 Driver 的信息, 应用程序的信息 和 所有Executor 的信息
- ZooKeeper 遇到当前Active 级别的Master 出现故障的时候从Standby Masters 中选取出一台作为Active , 但是要注意,被选举后到成为真正的Active Master 之间需要从ZooKeeper 中获取集群当前运行状态的元数据信息并进行恢复;
- 在 Master 切换的过程中,所有已经在运行的程序皆正常运行!因为 Spark Application 在运行前就已经通过 Cluster Manager 获得了计算资源 所以在运行时 Job 本身的调度和处理和 Master 是没有任何关系的!
- 在Master 的切换过程中唯一的影响是不能提交新的Job: 一方面不能提交新的应用程序给集群,因为只有Active Master 才能接受新的程序的提交请求;另外一方面,已经运行的程序也不能够因为Action 操作触发新的Job 的提交请求。
Spark Master HA on ZooKeeper 切換流程圖
Master HA 的四大方式
- Master HA 的四大方式:分別是 ZOOKEEPER,FILESYSTEM, CUSTOM, NONE;
- 需要说明的是:
- ZOOKEEPER 是自動管理 Master;
- FILESYSTEM 的方式在 Master 出现突障后需要手动启动机器,机器启动后会立即成为 Active 级别的 Master 来对外提供服务(接受应用程序提交的请求、接受新的 Job 运行的请求)
- CUSTOM 的方式允许用户自定义 Master HA 的实现,这对于高级用户特别有用;
- NONE,这是默应情况,当我们下载安装了 Spark 集群中就是采用这种方式,该方式不会持久化集群的数据, Driver, Application, Worker and Executor. Master 启动起立即管理集群;
- Persistence Engine 中有一个至关重要的方法 persists 来实现数据持久化
readPersistedData 来获取恢复集群中的元数据
现在去看看它的createdLeaderElectionAgent的方法
- FILESYSTEM 和 NONE 的方式均是采用 MonarchyLeaderAgent 的方式来完成 Leader的选举的,其实际实现是直接把传入的 Master 作为 Leader
- NONE 的方式根本不需要持久化引擎,它为什么要搞一个BlackHoleEngine
- 对一些WorkerState状态为UNKNOWN 的话(Worker不响应),就把它删除掉,如果你是以集群方式运行的话,driver 失败话可以重新启动一下,最后把状态变回ALIVE,这里注意要加入--supervise这一个参数。
[总结部份]
更新中......
转载于:https://www.cnblogs.com/sky-sql/p/9078707.html
Master HA彻底解密相关推荐
- Master HA源码解析
1.Master HA概述 Spark在生产上做HA一般采用的是通过zookeeper的方式,配置3个master的话是比较可靠的方式.采用zookeeper做HA的话zookeeper会保存整个Sp ...
- MariaDB数据库介绍三、MHA(Master HA)实现主节点故障转移
一.MHA MHA是开源的MySQL的高可用程序,它为MySQL的主从复制架构提供了主节点故障自动转移的功能,它会监控master节点故障的时候,会提升其中的拥有最新数据的slave节点称为新的mas ...
- MySQL MHA: 一种master高可用的主从复制解决方案
2019独角兽企业重金招聘Python工程师标准>>> 大纲 前言 MHA的架构 环境部署 实验步骤 总结 前言 上篇文章我们实现了MySQL的主从复制, 但是我们之前就说过, 主从 ...
- Spark _16 _SparkUIMaster HA
SparkUI SparkUI界面介绍 可以指定提交Application的名称 ./spark-shell --master spark://henu1:7077 --name myapp 配置h ...
- K8S集群Master高可用实践
本文将在前文基础上介绍k8s集群的高可用实践,一般来讲,k8s集群高可用主要包含以下几个内容: 1.etcd集群高可用 2.集群dns服务高可用 3.kube-apiserver.kube-contr ...
- Spark源码分析之Master启动和通信机制
Master主要就是用于管理集群,负责资源的调度什么的.它继承了ThreadSafeRpcEndpoint和LeaderElectable,由于继承ThreadSafeRpcEndpoint,所以Ma ...
- 私有云中Kubernetes Cluster HA方案
2019独角兽企业重金招聘Python工程师标准>>> 更多关于Kubernetes的深度文章,请到我oschina/WaltonWang的博客主页. Kubernetes Mast ...
- 全面学习Prometheus
Prometheus是继Kubernetes后第2个正式加入CNCF基金会的项目,容器和云原生领域事实的监控标准解决方案.在这次分享将从Prometheus的基础说起,学习和了解Prometheus强 ...
- Kubernetes 集群基于 Rook 搭建 Ceph 分布式存储系统
文章目录 1.Rook & Ceph 介绍 1.1.Rook 1.2.Ceph 2.环境.软件准备 3.Kubernetes HA 集群搭建 4.部署 Rook Operator 5.配置 R ...
最新文章
- 【Spring学习笔记-MVC-13.2】Spring MVC之多文件上传
- POJ 2240 Arbitrage
- 用户关联角色操作-代码实现
- php tp框架做选中删除,关于thinkphp框架实现删除和批量删除的分析
- 计算机应用基础一级考试题库,2018一级结构工程师《计算机应用基础》题库及答案(一)...
- P1152 欢乐的跳( python3实现)
- Create MSSQL Procedure
- sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock
- MySQL基础一些概念一些用法
- 禅道---Bug管理模块
- 人均维护服务器数量,华为FusionCube一体机助力金华职业技术学院构建最佳云平台...
- 51nod 1299 监狱逃离
- linux 该文件的owner,Linux修改文件/目录的owner/group方法(转载)
- 【文档生成工具Doxygen介绍】
- linux 查找文件是否含有某个字符串
- 外贸软件对出口公司的作用
- 【成神之路】Http网络相关面试题
- QT解决报错registered using qRegisterMetaType()
- 为什么不使用多线程?
- 球半篮球分析,NBA总决赛:勇士VS凯尔特人
热门文章
- 中国信通院栗蔚解读“云计算发展现状与可信云评估” 肯定“信创云基座”的可信能力
- Java并发编程的艺术(一)
- [思语]_一花一世界,一树一菩提
- Unity 编辑器开发实战【Custom Editor】- 为UI视图制作动画编辑器
- Linux服务--DHCP中继
- 一、搜索引擎篇-揭开es神秘的面纱
- 算法Day8|字符串专题二 剑指 Offer 58 - II. 左旋转字符串,28. 找出字符串中第一个匹配项的下标,459. 重复的子字符串
- DDR学习笔记---DDR3基本知识
- 安卓recovery菜单中英文对照
- 数据结构之冒泡排序算法(图解+分析+代码调优)