Spark源码之Standalone模式下master持久化引擎讲解.pdf
立即下载
纾潆锦袖迷子
2025-04-05
持久化
val
引擎
case
conf
Engine
serializer
master
故障
Mode
154.7 KB
浪尖 qq 技术交流群 459898801 224209501
浪尖 qq 技术交流群 459898801 224209501
Spark 源码之 Standalone 模式下 master持久化引擎讲解
Standalone 模式下 Master 为了保证故障恢复,会持久化一些重要的数据,来避免 master
故障导致集群不可用这种情况(也即单点故障)。目前,有四种持久化策略:
1,基于 zookeeper 的持久化引擎。
2,基于文件的持久化引擎。
3,用户自定义持久化引擎。
4,不使用持久化引擎。
在 master的 OnStart 方法中,对应的源码如下:
val serializer = new JavaSerializer(conf)
val (persistenceEngine_, leaderElectionAgent_) = RECOVERY_MODE match {
case "ZOOKEEPER" =>
logInfo("Persisting recovery state to ZooKeeper")
val zkFactory =
new ZooKeeperRecoveryModeFactory(conf, serializer)
(zkFactory.createPersistenceEngine(),
zkFactory.createLeaderElectionAgent(this))
case "FILESYSTEM" =>
val fsFactory =
new FileSystemRecoveryModeFactory(conf, serializer)
(fsFactory.createPersistenceEngine(),
fsFactory.createLeaderElectionAgent(this))
case "CUSTOM" =>
val clazz = Utils.classForName(conf.get("spark.deploy.recoveryMode.factory"))
val factory = clazz.getConstructor(classOf[SparkConf], classOf[Serializer])
.newInstance(con
持久化/val/引擎/case/conf/Engine/serializer/master/故障/Mode/
持久化/val/引擎/case/conf/Engine/serializer/master/故障/Mode/

-->