集群启动高可用特性后,您可以使用HaAdmin工具来管理HDFS集群。本文为您介绍如何使用HaAdmin工具。

前提条件

  • 已创建集群,并开启了高可用,详情请参见创建集群HA
  • 已登录集群,详情请参见登录集群

背景信息

在Hadoop 2.0.0之前,NameNode在HDFS集群中都是以单节点的形式存在。每个集群只有一个NameNode,如果此NameNode不可用,整个集群都会变成不可用的状态,直到NameNode重新与集群建立连接。

单一NameNode主要从两个方面影响HDFS集群的可用性:
  • 当发生一个计划之外的事件,例如机器宕机,集群将会处于不可用状态,直到手动重启NameNode。
  • 有计划的维护事件,例如软件或硬件升级,也会使得集群存在一个不可用的窗口期。

HDFS高可用特性解决了上述问题,通过提供了两个冗余的NameNode以主动或被动的方式用于热备,使得集群既可以从机器宕机中快速恢复,也可以优雅的在有计划的维护时快速恢复。

使用HaAdmin

HaAdmin工具的常用命令如下所示:
  • 查看所有NameNode的状态。
    hdfs haadmin -getAllServiceState
  • 检查指定NameNode的健康情况。
    hdfs haadmin -checkHealth <serviceId>
  • 在两个NameNode中初始化一个故障转移操作。
    hdfs haadmin -failover [--forcefence] [--forceactive] <serviceId>
  • 获取serviceId的状态,判断指定的NameNode是Active或者Standby。
    hdfs haadmin -getServiceStat <serviceId>
  • 将指定的NameNode状态转换成Active。
    hdfs haadmin -transitionToActive <serviceId> [--forceactive]
  • 将指定的NameNode状态转换成Standby。
    hdfs haadmin -transitionToStandby <serviceId>