有好几次,启动Hadoop和HBase之后,执行jps命令,已经看到有HMaster的进程,
但是进入到HBase的shell,执行一个命令,会出现下面的错误:
ERROR: org.apache.hadoop.hbase.MasterNotRunningException: Retried 7 times
进入到logs目录查看master的日志:发现一直显示下面的内容:
2013-04-13 17:13:17,374 INFO org.apache.hadoop.hbase.util.FSUtils: Waiting for dfs to exit safe mode...
2013-04-13 17:13:27,377 INFO org.apache.hadoop.hbase.util.FSUtils: Waiting for dfs to exit safe mode...
2013-04-13 17:13:37,386 INFO org.apache.hadoop.hbase.util.FSUtils: Waiting for dfs to exit safe mode...
2013-04-13 17:13:47,393 INFO org.apache.hadoop.hbase.util.FSUtils: Waiting for dfs to exit safe mode...
2013-04-13 17:13:57,395 INFO org.apache.hadoop.hbase.util.FSUtils: Waiting for dfs to exit safe mode...
2013-04-13 17:14:07,409 INFO org.apache.hadoop.hbase.util.FSUtils: Waiting for dfs to exit safe mode...
原来是Hadoop在刚启动的时候,还处在安全模式造成的。
[root@Hadoop-NN-01 hadoop-2.6.0-cdh5.6.0]$ bin/hadoop dfsadmin -safemode get
Safe mode is ON
可等Hadoop退出安全模式后再执行HBase命令,或者手动退出Hadoop的安全模式
[root@Hadoop-NN-01 hadoop-2.6.0-cdh5.6.0]$ bin/hadoop dfsadmin -safemode leave
Safe mode is OFF
现在再执行HBase的命令就没有问题了。
hadoop dfsadmin-safemode 命令参数说明:
enter - 进入安全模式
leave - 强制NameNode离开安全模式
get - 返回安全模式是否开启的信息
wait - 等待,一直到安全模式结束。