1. 程式人生 > >HDFS檢視異常:Operation category READ is not supported in state standby. Visit

HDFS檢視異常:Operation category READ is not supported in state standby. Visit

 跨叢集訪問hdfs失敗

$ hdfs dfs -ls hdfs://test:8020/hbase
ls: Operation category READ is not supported in state standby. Visit https://s.apache.org/sbnn-error

意思是namenode不可用,檢視namenode狀態

hdfs-site.xml
  <property>
    <name>dfs.ha.namenodes.nameservice1</name>
    <value>namenode223,namenode47</value>
  </property>

使用命令檢視namenode狀態,發現主NameNode是在執行的。

$hdfs haadmin -getServiceState namenode223                        
active

此時如果檢視namenode是standby模式可以使用以下命令前置切換主備 

hdfs haadmin -transitionToActive --forcemanual namenode47

 

找了半天才發現test:8020是之前的namenode,後來NameNode被我遷移了,換成test2:8020,ok。

總結幾個命令,日常維護時使用:

#切換NameNode(強制切換主備),前提是目前在用的NameNode是standby狀態,否則失敗
hdfs haadmin -transitionToActive --forcemanual namenode47

#檢視NameNode執行狀態
hdfs haadmin -getServiceState namenode223              

更多檢視
$ hdfs haadmin -help
Usage: DFSHAAdmin [-ns <nameserviceId>]
    [-transitionToActive <serviceId> [--forceactive]]
    [-transitionToStandby <serviceId>]
    [-failover [--forcefence] [--forceactive] <serviceId> <serviceId>]
    [-getServiceState <serviceId>]
    [-checkHealth <serviceId>]
    [-help <command>]

Generic options supported are
-conf <configuration file>     specify an application configuration file
-D <property=value>            use value for given property
-fs <local|namenode:port>      specify a namenode
-jt <local|resourcemanager:port>    specify a ResourceManager
-files <comma separated list of files>    specify comma separated files to be copied to the map reduce cluster
-libjars <comma separated list of jars>    specify comma separated jar files to include in the classpath.
-archives <comma separated list of archives>    specify comma separated archives to be unarchived on the compute machines.

The general command line syntax is
bin/hadoop command [genericOptions] [commandOptions]