1、描述
hdfs haadmin -failover 和 hdfs haadmin -transitionToActive 是 HDFS 高可用性(HA)管理中的两个重要命令,它们用于管理 NameNode 的角色切换和状态转换
2、failover
2.1、功能
- 自动切换:-failover 命令用于在 NameNode 之间进行自动故障切换。这个命令将一个 NameNode 从 Standby 状态切换到 Active 状态,并将另一个 NameNode 从 Active 状态切换到 Standby 状态
- 安全性检查:该命令在切换之前会进行一系列安全性检查,以确保新的 Active NameNode 能够正确接管工作
- 适用场景:主要用于处理 NameNode 故障或计划内的切换操作
2.2、例子
可以这么写 :
hdfs haadmin -failover nameserviceId nn1 nn2
也可以这么写(省去nameserviceId) :
hdfs haadmin -failover nn1 nn2
- nameserviceId:命名服务的 ID
- nn1:当前的 Standby NameNode
- nn2:当前的 Active NameNode
2.3、特点
- 完全自动化:命令执行后,无需手动介入,NameNode 状态会自动切换
- 安全性保障:进行必要的安全检查,确保切换过程的安全性
3、transitionToActive
3.1、功能
- 手动切换:-transitionToActive 命令用于将指定的 Standby NameNode 转换为 Active 状态。这个命令不会影响当前的 Active NameNode 的状态,需要手动管理
- 强制转换:在某些情况下(如网络分区或节点故障),可以强制转换 NameNode 的状态
3.2、例子
hdfs haadmin -transitionToActive --forcemanual nn1
nn1:要转换为 Active 状态的 Standby NameNode
3.3、特点
- 手动操作:需要管理员手动触发转换,并可能需要同时处理当前 Active NameNode 的状态
- 灵活性:在处理复杂情况(如网络分区)时,可以使用强制选项来确保服务继续运行
4、区别
- 自动 vs 手动 :
- -failover 是自动完成 Active 和 Standby 之间的切换
- -transitionToActive 是手动将一个 Standby NameNode 转换为 Active,可能需要处理多个步骤
- 切换的对象 :
- -failover 同时处理两个 NameNode,一个从 Active 到 Standby,另一个从 Standby 到 Active
- -transitionToActive 只处理一个 NameNode 的状态转换。
- 安全检查 :
- -failover 包含内置的安全检查,以确保切换过程的顺利和安全。
- -transitionToActive 可能需要管理员确保操作的安全性,尤其是在使用 --forcemanual 选项时
5、使用场景
hdfs haadmin -failover:适用于需要在 NameNode 之间进行自动化故障切换或计划内切换的场景,如在一个 NameNode 发生故障时自动切换到另一个 NameNode
hdfs haadmin -transitionToActive:适用于需要手动干预和管理 NameNode 状态的场景,如在网络分区后需要手动恢复 NameNode 状态
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。