有好幾次,啟動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 - 等待,一直到安全模式結束。