Hbase Error: Region is not online: -ROOT-,,0

[Just a Google breadcrumb for anyone having a random HBase error]

If you are running HBase, and commands are giving you and error that looks like this:

Fri Oct 05 21:45:02 UTC 2012, org.apache.hadoop.hbase.client.ScannerCallable@74f2db2d, org.apache.hadoop.hbase.NotServingRegionException: org.apache.hadoop.hbase.NotServingRegionException: Region is not online: -ROOT-,,0

at org.apache.hadoop.hbase.regionserver.HRegionServer.getRegion(HRegionServer.java:2859)

at org.apache.hadoop.hbase.regionserver.HRegionServer.openScanner(HRegionServer.java:2071)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:364)

at org.apache.hadoop.hbase.ipc.

HBaseServer$Handler.run(HBaseServer.java:1345)

Your HBase master is failing to start because Zookeeper is giving it an incorrect location for where the -ROOT- table is located. If you go into the HBase webui, you’ll see “Assigning ROOT region” as the status of the master node on startup.

To fix this:

$ hbase zkcli

zookeeper_cli> rmr /hbase/root-region-server


Then restart your master node, and you should be fine.