如果你是初学者,并且采用的是伪分布式安装,那么这个错误多半是hbase配置以及启动的时候有问题。这里推荐这篇文章:Hbase伪分布式安装。
上述文章解决了我一些问题,然后我的hbase就启动成功了。我重点描述一下我发现的问题与解决过程:按照我们老师的教材,我使用"./start-hbase.sh"、"./hbase shell"启动hbase后,在50070端口通过Browse Directory访问"/hbase"路径发现访问不了,报"Path does not exist on HDFS or WebHDFS is disabled. Please check your path or enable WebHDFS",而且通过hbase的status命令发现"ERROR: KeeperErrorCode = NoNode for /hbase/master"错误。这可能是教材上的hbase配置安装过程可能漏了步骤。。。
于是采用Hbase伪分布式安装的步骤重新配置hbase。在/hbase/conf下面的hbase-site.xml配置hbase.rootdir时,需要跟 hadoop的core-site.xml里面的fs.defaultFS保持一致。并且,如果regionservers里面的主机名也要修改成你的主机名。此外,还要将zookeeper的conf目录下的zoo.cfg(看你是不是启动这个节点,可能还有类似zoo-1.cfg的,就看你启动zookeeper节点用的是哪个.cfg文件了)复制到/hbase/conf。这些工作做完了后,我重新启动了hadoop、zookeeper的一个节点、hbase。此时,在50070端口用Browse Directory访问/hbase成功出现了内容,而用hbase的shell也可以正常使用status了。
总之,出现这些奇奇怪怪的错误,首先保证你其它配置是正确的,然后再借鉴我的解决步骤应该可以解决问题。这里再推荐一下这篇文章:CentOS7下安装Hadoop伪分布式,帮助一些连hadoop都没成功解决的小伙伴。