之前呢用的都是老版本的HBase0.xx,但是最近在安装HBase1.xx的时候呢出了不少问题,其实你所能见到的常见错误归根到底就是:配置文件没配置好,接下来我详细的介绍下我的安装过程。
1.上传安装包并解压:
sudo tar -zxvf hbase-1.5.0-bin.tar.gz
2.拷贝hadoop配置文件:
进入到hadoop的/ect/hadoop目录下将hdfs-site.xml,core-site.xml拷贝到hbase安装目录下的conf文件夹下,这里每个人的安装路径不同,就不在详细展示命令了。
3.修改用户权限(root下的不用这一步):
注意:我呢搭建hadoop伪分布的时候用的是az这个另外创建的用户,不是在root用户下,所以需要先修改下权限,不修改权限的话,你在关闭hbase的时候会如下错误:
stopping hbasecat: /tmp/hbase-az-master.pid: 没有那个文件或目录
网上都让重启hbase,zookeeper啥的,但是对我来说都不管用,最后还是修改下权限解决了问题。
命令格式:sudo chown -g 所用用户名 hbase的安装目录
sudo chown -g az /itcast/hbase-1.5.0
4.配置hbase-env.sh文件:
第一行配置是引入jdk的位置;
第二行配置是让hbase采用内部自带的zookeeper
5.配置hbase-site.xml文件:
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop01:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
第一个标签配置的是hbase数据存储在hdfs上的路径,我把值配值成hdfs://hadoop01:9000/hbase(hadoop01是我的主机名),我们可以看下hadoop的配置文件core-site.xml
很多教程配置的都是hdfs://localhost:9000/hbase,但是之后会报错,如下:
ERROR: Can't get master address from ZooKeeper; znode data == null
Here is some help for this command:
List all tables in hbase. Optional regular expression parameter could
be used to filter the output. Examples:
hbase> list
hbase> list 'abc.*'
所以建议大家还是按照自己的hadoop配置文件里面的配置去配置。
第二个标签配置的是hbase所处的模式是否是分布式;
6.启动hbase:
进入到bin目录下,执行./start-hbase.sh,然后输入hbase shell进入hbase命令行。