我遇到这个问题的原因是配置和环境变量错误:
正确的配置如下:
hbase-env.sh:
export JAVA_HOME=/usr/local/app/jdk1.8.0_91/
export HADOOP_HOME=/usr/local/app/cdh5.8.0/hadoop-2.6.4
上面这个是解决方法。
注意,必须写到脚本里,写到profile里无效。
注意进行zookeeper和hdfs的清理,否则会存在hbase.meta 的错误提示,不过不影响进行hbase shell的操作。
建议使用CDH的包,并参考其对应jar包里面的doc文档进行操作(因为版本不同参数和操作可能会有差别,例如端口号不同或者环境变量范围不同等):
http://www.cloudera.com/documentation/enterprise/release-notes/topics/cdh_vd_cdh_package_tarball_58.html
下面这个文件一般不会错,仅供参考:
hbase-site.xml:
<configuration> <!--hbase.rootDir+hbase.tmp.dir+'/hbase'=hdfs://host10:9000/hbase-root/hbase/ : --> <property > <name>hbase.tmp.dir</name> <value>/hbase-${user.name}/</value> </property> <property> <name>hbase.rootDir</name> <value>hdfs://host10:9000/</value> </property> <!-- <property> <name>hbase.rootDir</name> <value>file:///usr/local/app/cdh5.8.0h/basedata</value> </property>--> <!-- --> <property> <name>dfs.replication</name> <value>1</value> </property> <!-- --> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <!-- zookeeper --> <property> <name>hbase.zookeeper.quorum</name> <value>host10.ticloud</value> </property> <!--<property> <name>hbase.zookeeper.property.dataDir</name> <value>/usr/local/app/cdh5.8.0/hbaseZk</value> </property>--> <property> <name>hbase.zookeeper.property.clientPort</name> <value>2222</value> </property> <property> <name>hbase.master.port</name> <value>60000</value> </property> <property> <name>hbase.master.info.port</name> <value>60010</value> </property> <property> <name>hbase.regionserver.port</name> <value>60020</value> </property> <property> <name>hbase.regionserver.info.port</name> <value>60030</value> </property> <property> <name>hbase.master</name> <value>host10:60000</value> </property> </configuration>
后面这几个端口号是旧的端口(在CDH5.8.0里配置无效,可能是这几个参数还没加吧),在apache hbase1.2.2里是16000、16010、16020、16030。
因此可能的url是:
http://host10:16010/master-status
http://host10:60010/master-status
附件是可能有用的配置文件。