4. Hbase 入门

4.1. HBase的应用场景和特点

  • 业务场景:交通、金融(交易)、电商、移动(电话,短信,)
  • 特点
    • 容量:海量数据存储 单表的存储数据量 数十亿行 上百万列(没有列的限制) 而普通关系型数据库单表存储一般不超过500万条数据,超出之后需要分表分库;
    • 面向列:HBase是面向列的存储和权限控制,并支持独立检索.列式存储,其数据在表中是按照某列存储的,这样在查询只需要少数几个字段的时候,能大大减少读取的数据量;
    • 多版本:HBase每一列支持多版本存储;
    • 稀疏性:为空的列并不占用存储空间,表可以设计的非常稀疏;
    • 扩展性:底层依赖于HDFS 动态增加节点机器;
    • 高可靠性:WAL机制保证了数据写入时不会因集群异常而导致写入数据丢失-replication机制保证了在集群出现严重的问题时,数据不会发生丢失或损坏.并且HBase底层使用HDFS,其也有备份;
    • 高性能:
      • 底层的LSM数据结构和Rowkey有序排列等架构上的独特设计,使HBase具备非常高的写入性能;
      • region切分、主键索引和缓存机制使HBase在海量数据下具备一定的随机读取性能,该性能针对Rowkey的查询能够到达ms级别.
    • 准实时查询

4.2. HBase的概念与定位

  • hbase.apache.org
  • 选择合适HBase的版本
    • 官方:http://archive.apache.org/dist/hbase/
    • CDH:http://archive.cloudera.com/cdh5/
  • Hadoop2.x生态系统中的定位

4.3. HBase架构体系

4.4. HBase设计模型

  • 表设计 存在列蔟 并不存在实际的列信息
    • 一张表列蔟不会超过5个 建表的时候就会确认
    • 每个列蔟中的列数没有限制
    • 列只有插入数据后存在
    • 列在列蔟中有序排列

4.5. HBase对比关系型数据库

- 列动态增加
- 数据自动切分
- 高并发读写
- 缺点:不支持条件查询

4.6. HBase的安装部署

- JDK1.7以上

- Hadoop-2.5.0以上

- zookeeper-3.4.5以上

- HDFS
  • Hadoop2.x分布式安装配置
  • 解压Hadoop-2.5.0并安装
  • 配置hadoop-env.sh

4.7. HBase shell使用

  • Create
  • Describe
  • is_enabled
  • is_disabled
  • Drop
  • Enable
  • Disable
  • List
  • Count
  • Delete
  • get
  • Put
  • Scan
  • truncate

4.8. 总结