HBase入门(1)

小伙伴们大家好~

HBase 简介

  • HBase 是BigTable的开源 java 版本。数据文件存储在 HDFS,是一个分布式、可扩展、支持海量数据存储NoSQL 的数据库
  • 具有高可靠性高性能可扩展列存储实时读写等特点
  • HBase 仅能通过主键(row key)和主键的 range 来检索数据,仅支持单行事务
  • 主要用来存储结构化和半结构化的松散数据
  • Hbase 查询数据功能很简单,不支持 join 等复杂操作,不支持复杂的事务(行级的事务),从技术上来说,HBase 更像是一个「数据存储」而不是「数据库」,因为 HBase 缺少 RDBMS 中的许多特性,例如带类型的列、二级索引以及高级查询语言等
  • Hbase 中支持的数据类型:byte[]
  • 与 Hadoop 一样,Hbase 目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加存储和处理能力,例如,把集群从 10 个节点扩展到 20 个节点,存储能力和处理能力都会加倍
  • HBase 中的一般有这样的特点
    • :一个表可以有上十亿行,上百万列
    • 面向列:面向列(族)的存储和权限控制,列(族)独立检索
    • 稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏

HBase 应用

  • HBase 只要有海量数据存储,而且需要快速的写入以及快速的读取场景,就很适合 HBase
  • 但要记住 NoSQL 的特点:对事务的支持性较弱的
  • 可以用来存储爬虫的数据、点赞/转发、银行转账订单....

HBase 特点

  1. 强一致性读/写

    • HBase 不是“最终一致的”数据存储

    • 它非常适合于诸如高速计数器聚合等任务

  2. 自动分块

    • HBase 表通过 Region 分布在集群上,随着数据的增长,区域被自动拆分和重新分布
  3. 自动 RegionServer 故障转移

  4. Hadoop/HDFS 集成

    • HBase 支持 HDFS 开箱即用作为其分布式文件系统
  5. MapReduce

    • HBase 通过 MapReduce 支持大规模并行处理,将 HBase 用作源和接收器
  6. Java Client API

    • HBase 支持易于使用的 Java API 进行编程访问
  7. Thrift/REST API

  8. 块缓存和布隆过滤器

    • HBase 支持块 Cache 和 Bloom 过滤器进行大容量查询优化
  9. 运行管理

    • HBase 为业务洞察和 JMX 度量提供内置网页

HBase 结构

  • 以表形式存在
  • 支持 HDFS 文件系统
  • 使用行键(row key)
  • 原生支持分布式存储、计算引擎
  • 使用行、列族、列、和单元格

HBase 数据模型

  • HBase 中是有表的概念的
  • 一个表中可以包含多个列族(官方建议使用一个列族,避免 flush 产生大量小文件)
  • 一个列族可以包含很多的列
  • 每一个列对应的单元格(值、timestamp)

 

 

 

 

 

 

我的公众号:主要记录大数据+金融的学习笔记

欢迎关注:

 

 

posted @ 2022-01-06 12:02  flashman126  阅读(42)  评论(0编辑  收藏  举报