Hbase数据模型

从逻辑视图来看,Hbase的数据是用表形式进行组织的,而且和关系型数据库中的表一样,由列和行构成,从物理视图来看,hbase中的数据是一个Map,由键值(k,v)组成,不过与普通Map不同,Hbase是一个稀疏的、分布式、多维排序的Map.

Hbase的逻辑视图

  • table: 表,一个表包含多行数据
  • row:行,一行数据包含一个唯一标识rowkey、多个column以及对应的值。在Hbase中,一张表中所有row都按照rowkey的字典由小到大排序。
  • column:列,与关系型数据库中列不同,Hbase中的column由column family (列族)以及qualifier(列名) 两部分组成,两者中间使用:相连。列族在创建表时候需要指定,用户不能随意增减。但是列可以变更
  • timestamp: 时间戳,每个cell在写入hbase时候都会默认分配一个时间戳作为该cell的版本,当然,用户也可以在写入的时候自带时间戳。hbase支持多版本特性,即同一个rowkey、column下可以有多个value存在,这些value使用timestamp作为版本号,版本越大表示数据越新。
  • cell 单元格,由五元组(row,column,yimestamp,type,value)组成的结构,其中type表示Put/Delete这样的操作类型,timestamp代表这个cell的版本。这个结构在数据库中实际是以KV结构存储,其中(row,column,timestamp,type)是K,value对应V

物理模型

与大多数数据库系统不同,Hbase中的数据是按照列族存储的,即将数据按照列族分别存储在不同的目录中。

存储方式

行式存储

行式存储系统会将一行数据存储在一起,一行数据写完之后再接着写下一行,最典型的如MySQL这类关系型数据库。获取一行数据比较高效

列式存储

列存储理论上会将一列数据存储在一起,不同列的数据分别集中存储,最典型的如Kudu、Parquet on hdfs等。列式存储对于获取一行的请求不高效,但是对于获取某些列数据请求非常高效。另外因为同一列数据通常都具有相同的数据类型,因此列式存储具有天然的高压缩特性

列族式存储

从概念上来说,列族存储介于行和列之间

HBASE体系架构

  • Hbase客户端:提供了Shell命令行接口,原生Java api编程接口、MapReduce编程接口。等
  • zookeeper 主要协调管理分布式应用程序。在Hbase系统中,zookeeper扮演着非常重要的角色。比如:实现master高可用,管理核心元数据,参与regionServer耽机恢复;实现分布式表锁
  • Master master主要负责hbase的管理工作,处理用户的管理请求,包括建表、修改表、权限操作,切分表,合并数据分片以及compaction等。管理集群中的regionserver,包括regionserver中的region负载均衡。
  • regionserver 主要用来响应用户的IO请求,是Hbase中最核心模块,WAL,BlockCacheRegion等
  • HDFS 底层存储。

Hbase系统特点

优点

  • 容量巨大:Hbase单表可支持千亿行、百万列数据规模,数据容量可以达到TB甚至PB级别。传统的关系型数据规模,单表超过亿行会出现读写性能急剧下降
  • 良好的扩展性:HBase集群可以非常方便的实现集群容量扩展,主要包括数据存储节点扩展以及读写服务节点扩展。通过增加hdfs的datanode节点或者hregionServer节点。
  • 稀疏性:Hbase支持大量稀疏存储,即允许大量列植为空,并不占用任何存储空间。
  • 高性能:适用于oltp场景,数据读写操作性能强劲
  • 多版本:hbase支持多版本
  • 支持过期:Hbase支持ttl过期特性,用户只需要设置过期时间,超过TTL的数据就会被自动清理,不需要用户手动写
  • Hadoop原生支持

缺点

  • Hbase本身不支持很复杂的聚合元算,不适合olap场景
  • hbase本身没有实现二级索引
  • hbase原生不支持全局跨行事务,只支持单行事务模型。

Hbase原理与实践-1相关推荐

  1. 《HBase原理与实践》阅读笔记

    学习笔记(1-3章) 全书概述 1.HBase概述 1.1.Hbase发展历史 1.2.Hbase数据模型 1.3.Hbase体系结构 1.4.Hbase系统特性 2.Hbase基础数据结构与算法 2 ...

  2. Hbase原理与实践(学习笔记一:基本概念):

    相关笔记: <Hbase原理与实践>读书笔记--1.HBase概述_凯哥多帅哦的博客-CSDN博客_hbase的实现原理1.1 HBase前世今生Google当年风靡一时的"三篇 ...

  3. hbase原理与实践_HBase 性能调优第一弹:内存篇

    这是使用 HBase 最不可避免的一个话题,就是 HBase 的性能调优,而且通常建立在我们对 HBase 内部运行机制比较了解的基础上进行的,因此无论怎么说,调优这块都是一个相对复杂的事情.这一篇我 ...

  4. hbase原理与实践_JAVA连接HBase客户端及HBase写入数据和读取数据原理解析

    JAVA连接HBase客户端 接着上篇文章进行代码的实践,从JAVA 客户端对 HBase的客户端进行一系列操作 工具类:HbaseUtil 静态代码块一次性创建连接对象 并赋值 返回连接对象 Con ...

  5. 《Hbase原理与实践》读书笔记——1.HBase概述

    1.1 HBase前世今生 Google当年风靡一时的"三篇论文":GFS -> HDFS , Mapreduce -> hadoop mapreduce , bigT ...

  6. hbase 命令_HBase原理与实践 | 生产环境上线前真的优化过吗?

    笔者今天给大家讲一下 HBase 生产环境中的实践,包括资源隔离.参数配置.性能优化等方面,部分内容参考<HBase原理与实践>(非常建议大家好好读一读,一定会大有收获),以及笔者的实战经 ...

  7. vivo 调用链 Agent 原理及实践

    一.项目背景 2017年,vivo互联网研发团队认为调用链系统对实际业务具有较大的价值,于是开始了研发工作.3年的时间,调用链系统整体框架不断演进--本文将介绍vivo调用链系统 Agent 技术原理 ...

  8. 《从Paxos到zookeeper分布式一致性原理与实践》笔记

    <从Paxos到zookeeper分布式一致性原理与实践>笔记 文章目录 <从Paxos到zookeeper分布式一致性原理与实践>笔记 一.概念 二.一致性协调 2.1 2P ...

  9. 《从Paxos到zookeeper分布式一致性原理与实践》

    <从Paxos到zookeeper分布式一致性原理与实践> 一.概念 ACID: Automaticy.consistency.isolation. Durability CAP: con ...

最新文章

  1. html5表单实例元素,HTML5新表单元素的图文实例-
  2. Oracle 变量绑定与变量窥视合集系列二
  3. 人工智能学习框架TensorFlow渐近分析
  4. Nuxt爬坑系列之vuex
  5. JAVA——改变观感
  6. spring项目属性注入和bean管理xml 注入一般属性和集合属性
  7. C语言stdio相关的几个函数
  8. 转载:简单介绍Python中的try和finally和with方法
  9. Verilog HDL中阻塞语句和非阻塞语句的区别
  10. Unity2018新功能抢鲜 | 粒子系统改进
  11. python制作u盘病毒_十行代码--用Python写一个USB病毒!
  12. 批量处理文件,正则表达式处理文件
  13. 数据挖掘在电信欺诈侦测中的应用
  14. 使用smartping监控服务器的网络可用性
  15. html内嵌式的语言,html嵌入窗口
  16. dw css定位,Dreamweaver中层的定位
  17. 设计模式 “之“ 责任链模式
  18. 最近很多人问我:saiku下载不下来
  19. 动态申请权限---通讯录 及获取通讯录列表
  20. 将一台笔记本电脑作为另一台笔记本电脑的扩展显示器

热门文章

  1. 智能家居 蓝牙语音开关系统
  2. 配置网件公司的三层交换机的方法,以及两台linux pc之间用交换机连接,可以ping通
  3. bigkool 2018 android,Game danh bai doi thuong - Tu Quy At Club 2018电脑版
  4. dataframe选取特定行和列
  5. 哈工大C语言大作业-学生成绩管理系统
  6. 计算机网络阻塞和死锁,高并发和死锁
  7. 抓包神器 Wireshark,帮你快速定位线上网络故障(3)
  8. 初识贝塞尔(bezier)曲线
  9. Google blockly简介(三)puzzle游戏的制作
  10. 2.Windchill -- 系统简单介绍