一图看懂 HBase 架构(全面详细)

HBase

一图看懂 HBase 架构

HBase 最常用的shell操作

HBase 工作机制及读写流程


HBase 架构

  • HBase
  • 前言
  • HBase 简介
    • 什么是HBase
    • HBase 特点
    • NoSQL与RDBMS对比
    • HBase生态圈技术
  • HBase 架构
    • Client客户端
    • ZooKeeper集群协调一致性服务
    • HMaster节点
    • HRegionServer节点
    • HDFS
  • HBase 组件
    • 整体物理结构
    • Region
    • WAL
    • StoreFile(HFile)
    • Store(HStore)
    • MemStore


前言

本篇博客,为大家梳理 HBase 的组件架构和底层原理。希望能对 HBase 感兴趣/想了解的同学有所帮助。 同时也希望有发现内容不正确或者有疑问的地方,望指明,一起探讨,学习,进步。


HBase 简介

什么是HBase

HBase是 Google 的 Bigtable 开发的java版本。是一个建立在 HDFS 之上,面向列的针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式(实时读写nosql)数据库。

HBase是列式NoSql数据库。Hbase中仅支持的数据类型为byte[];它主要用来存储结构化和半结构化的松散数据。

HBase可以理解为一个非常大的分布式HashMap,在hadoop集群的各个节点中以行主键+列族(包含列)+时间戳为键,以储存的值为值。

与hadoop一样,Hbase主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。

HBase 特点

HBase中的表一般有这样的特点:

  • 大:一个表可以有上十亿行,上百万列
  • 面向列:面向列(族)的存储和权限控制,列(族)独立检索。
  • 稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏。

HBase的特点:

  • 海量存储
    Hbase适合存储PB级别的海量数据,在PB级别的数据以及采用廉价PC存储的情况下,能在几十到百毫秒内返回数据;同时能够达到随机读取20~100k ops/s(每秒操作次数)的速度。这与Hbase的极易扩展性息息相关。正式因为Hbase良好的扩展性,才为海量数据的存储提供了便利。

  • 列式存储
    这里的列式存储其实说的是列族存储,Hbase是根据列族来存储数据的。列族下面可以有非常多的列,列族在创建表的时候就必须指定。需要注意的是,列族理论上可以很多,但实际上建议不要超过6个。

  • 极易扩展
    Hbase的扩展性主要体现在两个方面,一个是基于上层处理能力(RegionServer)的扩展,一个是基于存储的扩展(HDFS)。

    通过横向添加RegionSever的机器,扩展的机器可以达到20000+,进行水平扩展,提升Hbase上层的处理能力,提升Hbsae服务更多Region的能力。通过横向添加Datanode的机器,进行HDFS存储层扩容,提升Hbase的数据存储能力和提升后端存储的读写能力。

  • 高并发
    由于目前大部分使用Hbase的架构,都是采用的廉价PC,因此单个IO的延迟其实并不小,一般在几IO延迟下降并不多。能获得高并发、低延迟的服务。

  • 稀疏
    稀疏主要是针对Hbase列的灵活性,在列族中,你可以指定任意多的列,在列数据为空的情况下,是不会占用存储空间的。

NoSQL与RDBMS对比

对比 NoSQL RDBMS
常用数据库 HBase、MongoDB、Redis Oracle、DB2、MySQL
存储格式 文档、键值对、图结构 表格式,行和列
存储规范 鼓励冗余 规范性,避免重复
存储扩展 横向扩展,分布式(列扩展) 纵向扩展(横向扩展有限)(行扩展)
查询方式 结构化查询语言SQL 非结构化查询
事务 不支持事务一致性 支持事务
性能 读写性能高 读写性能差
成本 简单易部署,开源,成本低 成本高

HBase生态圈技术

  • Lily – 基于HBase的CRM(客户关系数据系统管理)
  • OpenTSDB – HBase面向时间序列数据管理
  • Kylin – HBase上的OLAP(联机分析处理)
  • Phoenix – SQL操作HBase工具
  • Splice Machine – 基于HBase的OLTP(联机事务处理)
  • Apache Tephra – HBase事务支持
  • TiDB – 分布式SQL DB
  • Apache Omid - 优化事务管理
  • Yarn application timeline server v.2 迁移到HBase
  • Hive metadata存储可以迁移到HBase
  • Ambari Metrics Server将使用HBase做数据存储

HBase 架构

HBase依旧采用Master/Slave架构搭建集群,它隶属于Hadoop生态圈,依附于ZooKeeper集群的协调一致性服务,由HMaster节点和HRegionServer节点组成;而在底层,它将数据存储于HDFS中,因而涉及到HDFS的NameNode、DataNode等,总体结构如下:

你可能感兴趣的:(大数据,hbase,hadoop,hbase,组件架构,大数据)