大数据技术之HBase原理与实战归纳分享-上

@
目录

  • 概述
    • 概述
    • 逻辑结构
    • 物理存储结构
    • 数据模型
    • 定义
    • 特点
    • 数据模型
    • 应用场景
    • 基础架构
  • 安装
    • 前置条件
    • 部署
    • 启动服务
    • 高可用
  • Shell操作
    • 基础操作
    • 命令空间
    • DDL
    • DML
概述定义
HBase 官网地址 https://hbase.apache.org/
HBase 官网文档 https://hbase.apache.org/book.html
HBase GitHub源码地址 https://github.com/apache/hbase
Apache HBase是以HDFS为数据存储分布式的、可伸缩的Hadoop NoSQL数据库 。最新版本为2.5.0
HBase支持对大数据进行随机、实时的读写访问,可以在商用硬件集群上托管非常大的表——数十亿行X数百万列 。Apache HBase是一个开源的、分布式的、版本化的、非关系数据库,模仿了谷歌开发的Bigtable结构化数据的分布式存储系统,与Bigtable利用了谷歌文件系统提供的分布式数据存储一样,Apache HBase在Hadoop和HDFS的基础上提供了类似Bigtable的功能 。
特点
  • 可扩展性 。
  • 读写严格一致 。
  • 自动和可配置的表分片 。
  • regionserver之间的自动故障转移支持 。
  • 使用Apache HBase表支持Hadoop MapReduce作业 。
  • 易于使用Java API进行客户端访问 。
  • 块缓存和Bloom过滤器用于实时查询 。
  • 通过服务器端过滤器下推查询谓词 。
  • Thrift网关和一个支持XML、Protobuf和二进制数据编码选项的rest Web服务 。
  • 可扩展的基于jruby (JIRB)的shell 。
  • 支持通过Hadoop指标子模块导出指标 。
数据模型概述
  • HBase的设计理念依据Coogle 的BigTable论文,论文中说到Bigtable 是一个稀疏的,分布式的,持久的多维排序map 。
  • 映射由行键,列键和时间戳索引;映射中的每一个值都是一个未解释的字节数组 。
  • HBase数据模型和BigTable的对应关系如下
    • HBase 使用于 BigTable非常相似的数据模型,用户将数据行存储在带标签的表中,数据行具有可排序的键和任意数量的列 。
    • 该表存储稀疏,因此如果用户喜欢,同一表中的行可以具有疯狂变化的列
HBase 数据模型的关键在于稀疏、分布式、多维、排序的映射 。其中映射 map 指代非关系型数据库的 key-Value 结构 。
逻辑结构HBase 可以用于存储多种结构的数据,以 JSON 为例:
{ "row_key1":{"personal_info":{"name":"zhangsan","city":"北京","phone":"131********"},"office_info":{"tel":"010-1111111","address":"atguigu"} }, "row_key11":{"personal_info":{"city":"上海","phone":"132********"},"office_info":{"tel":"010-1111111"} }, "row_key2":{ ......}逻辑结构存储数据稀疏,数据存储多维,不同的行具有不同的列 。数据存储整体有序,按照RowKey的字典序排列,RowKey为Byte数组,示例如下:
大数据技术之HBase原理与实战归纳分享-上

文章插图

经验总结扩展阅读