HBase应用(1)简介及应用场景

1. 简介

HBase是一个分布式、基于列的非关系数据库,特征如下:

  1. 实时查询
  2. key-value存储
  3. 随机访问
  4. 支持结构和非结构数据
  5. 不关心数据类型(统一byte数组存储)
  6. 不支持SQL
  7. 仅支持单行事务
  8. 灵活性扩展性强

1.1 应用场景

HBase是Google BigTable的仿制品。BigTable在搜索引擎中的应用:
BigTable在搜索引擎中的应用

图片源自:《HBase实战》

HBase的典型应用场景:

  1. 抓取增量数据
    • 抓取监控指标:对集群软硬件的健康状态进行监控
    • 抓取用户交互数据:抓取用户的所有交互操作(点赞、浏览、下单等等)
    • 遥测技术:收集软件崩溃日志等
    • 广告效果和点击流:提升广告的点击率和准确率;储存用户每一次的点击操作
  2. 内容服务
    • URL短链接
    • 用户模型服务:用户建模
  3. 信息交换
    • 社交网络:大量用户消息和内容的高并发读写

1.2 安装

同Hadoop一样有3中模式:单机、伪集群、集群。这里只介绍集群安装,集群一共3台机器centos0、 centos1、 centos2,且3台机器都已经安装好Hadoop 2.9.0相关环境。

  1. 下载zookeeper-3.4.10,修改conf/zoo.cfg中的如下配置:

    1
    2
    3
    4
    dataDir=/root/bigdata/zookeeper_data
    server.0=centos0:2888:3888
    server.1=centos1:2888:3888
    server.2=centos2:2888:3888
  2. 下载HBase 1.2.6,修改如下配置:

    hbase-site.xml

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <configuration>

    <property>
    <name>hbase.rootdir</name>
    <!-- 假设这里centos0为HDFS的NameNode -->
    <value>hdfs://centos0:9000/user/hbase</value>
    </property>

    <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
    </property>

    <property>
    <name>hbase.zookeeper.quorum</name>
    <value>centos0,centos1,centos2</value>
    </property>

    </configuration>

    hbase-env.sh

    1
    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64

    regionservers

    1
    centos1

    backup-masters

    1
    centos2
  3. 启动

    1
    /hbase-1.2.6/bin/start-hbase.sh
  1. HBase Shell

    1
    /hbase-1.2.6/bin/hbase