有空装个HBase玩玩
之前Hadoop等环境已经有了,所以想了解Hadoop的安装可以google一下
最主要的就是系统环境参数都配好,比如
HADOOP_HOME
ZOOKEEPER_HOME
HBASE_HOME
在HBASE_HOME/conf/hbase-site.xml中加入配置hadoop namenode的参数
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
<description>The directory shared by RegionServers.</description>
</property>
hdfs://localhost:9000是namenode的地址和端口
/hbase是hdfs上的一个文件夹,注意不要自己建,hbase会帮你建的,你只要提供一个文件名就可以了
然后其他的都不用配置,运行HBASE_HOME/bin/start-hbase.sh
顺利启动,用命令行试一下,运行一下建表
create 'table_name', 'cf'
结果报错:ERROR: org.apache.hadoop.hbase.NotAllMetaRegionsOnlineException: org.apache.hadoop.hbase.NotAllMetaRegionsOnlineException: Timed out (10000ms)
google搜了一下,有好几个都说修改/etc/hosts文件,把原来127.0.0.1的修改成内网地址
想了半天127.0.0.1和内网地址好像没啥区别啊,最后找到了参考资料上的这段话:
Loopback IP
HBase expects the loopback IP address to be 127.0.0.1. Ubuntu and some other distributions, for example, will
default to 127.0.1.1 and this will cause problems for you.
/etc/hosts should look something like this:
127.0.0.1 localhost
127.0.0.1 ubuntu.ubuntu-domain ubuntu
关键在于第二句,原来ubuntu的hosts文件默认把机器名对应的ip设为了127.0.1.1,把这个改为127.0.0.1然后再试试
运行stop-hbase.sh结果等了半天还是没关闭stopping hbase...................................................................................................
肯定是什么地方出错了,直接kill掉进程,重启hbase,然后再创建表,这下对了
再找stop-hbase的问题吧,结果关闭也对了
原来stop出错也是因为这个hosts不对的关系