/**
* ZOOKEEPER: 集群元数据持久化到zookeeper,当master出现异常的时候,zookeeper会通过选举机制选举出新的Master,新的Master接管集群时需要从zookeeper获取持久化信息,并根据这些信息恢复集群状态。
* FILESYSTEM: 集群的元数据持久化到文件系统,当Master出现异常的时候,只要在该机器上重启Master,启动后的Master获取持久化信息并根据持久化信息恢复集群状态。
* CUSTOM: 自定义恢复模式,实现StandaloneRecoveryModeFactory抽象类进行实现,并把该类配置到配置文件,当Master出现异常,会根据用户自定义的方式进行恢复集群状况。
* NONE: 不持久化集群元数据,当Master出现异常时,新启动的Master不进行恢复集群状态。
*/
详情见https://blog.csdn.net/Anbang713/article/details/81674861
我在这里做补充:
//我们必须在这里用一个新的驱动程序id设置一个新的驱动程序,因为原来的驱动程序可以
//还在跑。考虑这个场景:一个worker与master进行网络分区,
//然后主进程用驱动程序id driverID2重新启动驱动程序driverID1,然后是worker
//重新连接到master。从这一点开始,如果driverID2等于driverID1,那么master
//分不清原驱动和新重启驱动的状态更新,
//例如,当DriverStateChanged(driverID1, KILLED)到达master时,master will
//删除driverID1,这样重新启动的驱动程序也会消失。