所有的配置先在主节点完成, 然后通过scp传输.

1. 下载安装包

链接:http://mirrors.cnnic.cn/apache/hbase/

选择 stable 目录,下载 bin 文件:

hbase版本对应hadoop hadoop对应的hbase版本_hadoop

在Linux上解压,博客中解压在/home/hadoop 目录下:

hbase版本对应hadoop hadoop对应的hbase版本_HBase_02


进入解压目录:

hbase版本对应hadoop hadoop对应的hbase版本_Hadoop_03

2.修改配置

  1. 修改JDK路径、启用HBase自带zookeeper
vim conf/hbase-env.sh

JDK路径按照安装路径配置:

hbase版本对应hadoop hadoop对应的hbase版本_zookeeper_04


启用自带zookeeper:

hbase版本对应hadoop hadoop对应的hbase版本_Hadoop_05

  1. 修改HBase所基于的Hadoop版本:
    HBase的版本与Hadoop的版本存在兼容问题, 可以网上查询各个版本的兼容问题.
cd hbase-1.4.8
ls lib | grep '^hadoop-'

hbase版本对应hadoop hadoop对应的hbase版本_hadoop_06


如上图, HBase-1.4.8默认的Hadoop版本为2.7.4, 由于博主这里使用的是2.7.3, 所以需要替换.

执行命令:

分别执行如下两条命令:

将已安装版本的Hadoop相应jar包复制到 lib目录:

cd /usr/local/hbase-1.4.8
ls lib | grep '^hadoop-' | sed 's/2.7.4/2.7.3/' | xargs -i find $HADOOP_HOME -name {} | xargs -i cp {} ./lib/

删除HBase原有版本的jar包:

rm -rf lib/hadoop-*2.7.4.jar

再次查询:

hbase版本对应hadoop hadoop对应的hbase版本_zookeeper_07

3. 配置Hbase

vim  conf/hbase-site.xml

这里master为NameNode,slave1, slave2为DataNode(可根据自己集群做相应设置):

<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://master:9000/hbase</value>
    </property>
    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/home/hadoop/zookeeper</value>
    </property>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>master,slave1,slave2</value>
    </property>
</configuration>

< value>master,slave1,slave2</ value>中间不要写空格.

regionserver和备用节点设置:

hbase版本对应hadoop hadoop对应的hbase版本_Hadoop_08


备用节点文件不存在, 需要创建:

hbase版本对应hadoop hadoop对应的hbase版本_hadoop_09


传输:

scp -r hbase-1.4.8/ slave1:/usr/local/
scp -r hbase-1.4.8/ slave2:/usr/local/

环境变量配置:

在主节点设置:

vim /home/hadoop/.bashrc

hbase版本对应hadoop hadoop对应的hbase版本_HBase_10


source /home/hadoop/.bashrc

4. 启动HBase

启动Hadoop集群:

start-all.sh

启动Hbase集群:

start-hbase

hbase版本对应hadoop hadoop对应的hbase版本_Hadoop_11


节点查看:

hbase版本对应hadoop hadoop对应的hbase版本_hadoop_12


hbase版本对应hadoop hadoop对应的hbase版本_hbase版本对应hadoop_13


hbase版本对应hadoop hadoop对应的hbase版本_hbase版本对应hadoop_14


由于slave1设置为备用节点, 所以也存在HMaster进程.查看HDFS:

hbase版本对应hadoop hadoop对应的hbase版本_Hadoop_15


其中hbase目录则为HBase集群的配置信息和数据存储目录.

HBase shell测试:
进入shell:

hbase shell

创建测试表: student, 包含三个列族: id name age

hbase版本对应hadoop hadoop对应的hbase版本_hadoop_16


到此, HBase集群已经成功搭建.

需要注意的事项:

HBase启动成功后, 并且能够查询到如HMaster之类的进程, 并不一定已经成功, 如果HMaster随后自动消失(进程死亡), 说明配置有问题, 还需要检查前面的配置.

完!