被hbase这个问题困扰了一个下午。
可能原因有下列几种
1.hadoop处于安全模式
解决:hadoop dfsadmin -safemode leave
2.时间不同步,同步时间即可。
3.hbase的几个配置文件配置错误。
#配置$HBASE_HOME/conf/hbase-env.sh
# The java implementation to use. Java 1.6 required.
export JAVA_HOME=/usr/java/default/
#配置java环境变量,up启动失败的bug原因之一就是这个路径配置错了,清无比修改成你自己的JAVA_HOME。不要用我的。。
#配置$HBASE_HOME/conf/hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///home/stephen/hbaseData</value>
</property>
#配置habse的文件存放路径
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/stephen/zookeeperData</value>
</property>
#配置zookeeper的文件存放路径,hbase自带zookeeper
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
#添加这个就是配置了伪分布了,start-hbase.sh之后会看到三个进程。如果是只有HMASTER进程则是单机模式。
</configuration>
需要注意一点:在启动伪分布的hbase之前,需要启动hadoop。start-all.sh
配置完毕后如下执行:
start-all.sh
start-hbase.sh
hbase shell
list
如果没有表就create一下,若已有表,list即可,查看是否配置成功。
另外,配置HBASE_HOME环境变量时发现一个bug,也有可能是自己linux基础知识理解不够,修改HBASE_HOME后source并没有生效,重启后才行。
配置环境变量在etc/profile中或者是用户目录的~/.bash_profile文件中配置。