1、描述

hdfs haadmin -failoverhdfs 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、区别

  1. 自动 vs 手动 :
  2. -failover 是自动完成 Active 和 Standby 之间的切换
  3. -transitionToActive 是手动将一个 Standby NameNode 转换为 Active,可能需要处理多个步骤
  4. 切换的对象 :
  5. -failover 同时处理两个 NameNode,一个从 Active 到 Standby,另一个从 Standby 到 Active
  6. -transitionToActive 只处理一个 NameNode 的状态转换。
  7. 安全检查 :
  8. -failover 包含内置的安全检查,以确保切换过程的顺利和安全。
  9. -transitionToActive 可能需要管理员确保操作的安全性,尤其是在使用 --forcemanual 选项时

5、使用场景

hdfs haadmin -failover:适用于需要在 NameNode 之间进行自动化故障切换或计划内切换的场景,如在一个 NameNode 发生故障时自动切换到另一个 NameNode

hdfs haadmin -transitionToActive:适用于需要手动干预和管理 NameNode 状态的场景,如在网络分区后需要手动恢复 NameNode 状态


journey
32 声望21 粉丝