Hbase简介

HBase 是一个构建在 Hadoop 文件系统之上的面向列的数据库管理系统。

Hbase 的表具有以下特点:

容量大:一个表可以有数十亿行,上百万列;
面向列:数据是按照列存储,每一列都单独存放,数据即索引,在查询时可以只访问指定列的数据,有效地降低了系统的 I/O 负担;
稀疏性:空 (null) 列并不占用存储空间,表可以设计的非常稀疏 ;
数据多版本:每个单元中的数据可以有多个版本,按照时间戳排序,新的数据在最上面;
存储类型:所有数据的底层存储格式都是字节数组 (byte[])。

hbase中的数据怎么实现修改

hbase中的数据存储在hdfs中,而hdfs中的数据是不支持修改的,那hbase中的修改数据、delete等操作是怎么实现的呢?

如上图,客户端进行删除操作时,会往hdfs中的hfile文件中追加数据,数据中会记录用户的操作delete,为墓碑标记(标记着数据要删除),在下次获取该数据时,会发现有两个该数据,其中一条有墓碑标记,则不会返回客户端数据。

之后会将原来的数据和用户删除后生成的记录合并生成一个新的hfile文件。和hdfs不支持数据修改的是不相违背的,hbase实现修改是向文件后进行追加,再进行合并完成修改。

合并时机:

1、有大量的更新数据操作

2、有大量的小文件(列族太多,内存小)

3、TTL(有过期数据)

大合并和小合并

大合并是合并region,region在HDFS中对应一个文件夹,region的合并会涉及整个文件夹下的大量Hfile文件的合并,非常耗费资源;小合并是合并Hfile文件,将一个文件夹下的多个Hfile文件合并为一个Hfile文件

合并region操作 (shell)

merge_region ‘region_name’,‘region_name’

拆分

随着数据的增加,一个region管理的数据会越来越多,如果出现大量的查询此region数据的请求,那么这个region所在的RegionServer会出现并发热点问题,则需要拆分region。

缺点:拆分后要解决热点问题,实现负载均衡,就需要将拆分后的region移动到其他RegionServer上,拆分后的region会在Hdfs生成新的文件夹,其中会有很多的hfile文件,移动region和hdfs交互,会占用大量的IO资源。

Hbase原理加强篇相关推荐

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

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

  2. HBase原理之数据读取流程

    和写流程相比,HBase读数据是一个更加复杂的操作流程,这主要基于两个方面的原因:其一是因为整个HBase存储引擎基于LSM-Like树实现,因此一次范围查询可能会涉及多个分片.多块缓存甚至多个数据存 ...

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

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

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

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

  5. Hugepages你用了吗?--原理概念篇

    Hugepages你用了吗?----原理概念篇 Hugepages你用了吗?----测试案例篇      引子 系统进程是通过虚拟地址访问内存,但是CPU必须把它转换程物理内存地址才能真正访问内存.为 ...

  6. HBase原理 – snapshot 快照

    目录 snapshot(快照)基础原理 snapshot能实现什么功能? hbase snapshot用法大全 hbase snapshot分布式架构-两阶段提交 snapshot核心实现 clone ...

  7. 深入浅出TCP/UDP 原理-UDP篇(2)及完整MATLAB实现UDP通信

    目录 调试代码在文末 写在前面 3. UDP疑难杂症 3.1 UDP的传输方式:面向报文 3.2 UDP数据包的发送和接收问题 3.3 UDP丢包问题 3.4 UDP冗余传输 4 UDP真的比TCP要 ...

  8. 金字塔原理--第一篇读后感(第三章)

    金字塔原理-第一篇表达的逻辑 自己的表达能力不太行,敲本书,瞅瞅别人的表达方式,学习下,共同进步呀! 文章目录 金字塔原理-第一篇表达的逻辑 第三章:如何构建金字塔 一.自上而下法 二.自下而上法 第 ...

  9. 金字塔原理--第一篇读后感(第二章)

    金字塔原理-第一篇表达的逻辑 自己的表达能力不太行,敲本书,瞅瞅别人的表达方式,学习下,共同进步呀! 文章目录 金字塔原理-第一篇表达的逻辑 第二章:金字塔内部的结构 一.纵向关系 二.横向关系 三. ...

最新文章

  1. heritrix 3.2.0 -- 环境搭建
  2. NYOJ 70 阶乘因式分解(二)
  3. javascript OOP 面向对象编程
  4. Linux的内存理解
  5. mysql中索引类型索引方法_MYSQL索引的类型和索引的方式
  6. BundlePhobia
  7. 双离合档把上按钮作用_英特尔展示双屏幕概念笔记本:带有双铰链
  8. 由于在客户端检测到一个协议错误_HTTP协议,你了解多少?
  9. (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  10. 测量两台机器的的网络延迟和时间差
  11. ***PHP各种编码的汉字字符串截取
  12. python50行小游戏_使用Python写一个小游戏
  13. 批处理清空文件夹内所有txt文件的内容
  14. Android apk下载与安装
  15. [转载]AutoCAD2013 以上利用AccoreConsole+ c# NetApi 批量处理图纸
  16. video-js rtmp直播、this .el_vjs_getproperty问题、多个rtmp播放、可用rtmp地址
  17. pcr技术发展史——人类核酸研究的前世今生
  18. windows系统配置静态路由
  19. 语音信号的基音参数提取
  20. bootstrap4 input-spinner数字增减框的使用

热门文章

  1. 解读Android官方MVP项目单元测试
  2. Fluent局部坐标系(曲线坐标系)
  3. 深层卷积神经网络的暗网流量检测比较与改进
  4. 移动端多页面应用(MPA)的开发(一)
  5. 特斯拉再次领先,公布了一系列自动驾驶数据
  6. 入室监控—树莓派上挂红外传感器(python)
  7. C#上位机学习(二)--GPS数据接收
  8. GSEA实战分析(结直肠癌基因转录表达数据)
  9. 无感刷新token方法
  10. 【PCL自学:Feature5】视点特征直方图VFH概念及使用 (持续更新)