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/
-1 条回复
登录 后才能参与评论
-->