资源规划

组件 bigdata-node1 bigdata-node2 bigdata-node3
OS centos7.6 centos7.6 centos7.6
JDK jvm jvm jvm
Zookeeper QuorumPeerMain QuorumPeerMain QuorumPeerMain
HDFS NameNode/SecondaryNameNode/DataNode/JobHistoryServer/ApplicationHistoryServer DataNode DataNode
HBase HMaster/HRegionServer HRegionServer HRegionServer

安装介质

  1. 版本:hbase-1.2.5-bin.tar.gz<br /> 下载:[http://archive.apache.org/dist/hbase/1.2.5](http://archive.apache.org/dist/hbase/1.2.5)

环境准备

安装JDK

参考:《 CentOS7.6-安装JDK-1.8.221

安装ZooKeeper

  1. 参考:《[CentOS7.6-安装ZooKeeper-3.4.10](https://www.yuque.com/polaris-docs/bigdata/centos-zookeeper-setup)》

安装Hadoop

参考:《CentOS7.6-安装Hadoop-2.7.2

版本兼容性

HBase与JDK的兼容性

image.png

HBase与Hadoop的兼容性

image.png

安装Hbase

解压缩

  1. # 先在节点bigdata-node1上安装,之后分发到bigdata-node2、bigdata-node3
  2. cd /share
  3. tar -zxvf hbase-1.2.5-bin.tar.gz -C ~/modules/
  4. rm -rf hbase-1.2.5-bin.tar.gz

配置

  1. 配置hbase-env.sh。

    1. vi ~/modules/hbase-1.2.5/conf/hbase-env.sh

    配置如下:

    1. # 设置JAVA的环境变量
    2. export JAVA_HOME=/home/vagrant/modules/jdk1.8.0_221
    3. # 设置是否使用hbase自带的zookeeper
    4. export HBASE_MANAGES_ZK=false
  2. 配置hbase-site.xml。

    1. vi ~/modules/hbase-1.2.5/conf/hbase-site.xml

    配置如下:

    1. <?xml version="1.0"?>
    2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    3. <configuration>
    4. <property>
    5. <name>hbase.rootdir</name>
    6. <value>hdfs://bigdata-node1:9000/hbase</value>
    7. </property>
    8. <!-- 完全分布模式 -->
    9. <property>
    10. <name>hbase.cluster.distributed</name>
    11. <value>true</value>
    12. </property>
    13. <!-- 0.98后的新变动,之前版本没有.port,默认端口为60000 -->
    14. <property>
    15. <name>hbase.master.port</name>
    16. <value>16000</value>
    17. </property>
    18. <property>
    19. <name>hbase.zookeeper.quorum</name>
    20. <value>192.168.0.101:2181,192.168.0.102:2181,192.168.0.103:2181</value>
    21. </property>
    22. <property>
    23. <name>hbase.zookeeper.property.dataDir</name>
    24. <value>/home/vagrant/modules/zookeeper-3.4.10/data</value>
    25. </property>
    26. </configuration>
  3. 配置regionservers。

    1. vi ~/modules/hbase-1.2.5/conf/regionservers

    配置如下:

    1. bigdata-node1
    2. bigdata-node2
    3. bigdata-node3
  4. 配置backup-masters。(注: 如需配置Master的高可用(HA),需要创建backup-masters文件)

    1. bigdata-node2
  5. 环境变量配置。

    1. vi ~/.bashrc

    配置如下:

    1. export HBASE_HOME=/home/vagrant/modules/hbase-1.2.5
    2. export PATH=${HBASE_HOME}/bin:$PATH

    分发

    1. scp -r ~/modules/hbase-1.2.5 bigdata-node2:~/modules/
    2. scp -r ~/modules/hbase-1.2.5 bigdata-node3:~/modules/
    3. scp -r ~/.bashrc vagrant@bigdata-node2:~/
    4. scp -r ~/.bashrc vagrant@bigdata-node3:~/
    5. source ~/.bashrc # 各节点分别执行

    分别对bigdata-node1、bigdata-node2、bigdata-node3创建hadoop配置文件软连接。

    1. ln -s ~/modules/hadoop-2.7.2/etc/hadoop/core-site.xml ~/modules/hbase-1.2.5/conf/core-site.xml
    2. ln -s ~/modules/hadoop-2.7.2/etc/hadoop/hdfs-site.xml ~/modules/hbase-1.2.5/conf/hdfs-site.xml

    启动HBase

    1. # 启动HBase集群(分别先启动Hadoop、ZooKeeper集群)
    2. $HBASE_HOME/bin/start-hbase.sh
    3. # 停止整个集群
    4. $HBASE_HOME/bin/stop-hbase.sh
    5. # 单独启动一个HMaster进程
    6. $HBASE_HOME/bin/hbase-daemon.sh start master
    7. # 单独停止一个HMaster进程
    8. $HBASE_HOME/bin/hbase-daemon.sh stop master
    9. # 单独启动一个HRegionServer进程
    10. $HBASE_HOME/bin/hbase-daemon.sh start regionserver
    11. # 单独停止一个HRegionServer进程
    12. $HBASE_HOME/bin/hbase-daemon.sh stop regionserver

    验证

  6. 进入终端。

    1. hbase shell
  7. 创建一张表。

    1. hbase shell>> create 't_user', {NAME => 'info', VERSIONS => '3'},{NAME => 'data'}
  8. 向表中添加数据。

    1. hbase shell>> put 't_user', 'rk0001', 'info:name', 'zhangsan'
    2. hbase shell>> put 't_user', 'rk0001', 'info:gender', 'female'
    3. hbase shell>> put 't_user', 'rk0001', 'info:age', 20
    4. hbase shell>> put 't_user', 'rk0001', 'data:pic', 'picture'
  9. 查询、更新以及删除操作。

    1. # 查询有哪些表
    2. hbase shell>> list
    3. # 通过rowkey查询
    4. hbase shell>> get 't_user', 'rk0001'
    5. # 更新数据操作
    6. hbase shell>> alter 't_user', NAME => 'info', VERSIONS => 5
    7. # 指定rowkey以及列名进行删除
    8. hbase shell>> delete 't_user', 'rk0001', 'info:name'
    9. # 删除表
    10. hbase shell>> disable 't_user'
    11. hbase shell>> drop 't_user'
  10. 可以通过页面访问查看表的信息和集群状态。

Web UI:http://bigdata-node1:16010/master-status