原创

HBase

HBase

数据模型

Row Key

字典顺序

最多存储64k的字节数据

Time Stamp

按照时间倒序排列

默认为64位整型数据

可以制定版本的保留条数,默认为1,即当前版本数据

colum family列族&&qualifier列

列族在建表时给出

列族成员动态加入

权限,调优都是在列族层面

列族成员分为几个文件分布在一个列族的文件夹中

cell

由行和列交叉决定

有版本

存储无类型全部是用字节码储存

HLog

记录操作,也能记录数据方便数据丢失后恢复

调优

表的设计

预先多创建空的region

rowkey设计

· 越小越好

· 根据实际的业务需求来设计

· 尽量保证散列性

不要定义太多列族

先写入缓存中

合并major compaction

· 把自动执行改为手动执行

写表操作

多个客户端并发进行写操作

有多个相同格式数据的写入应该批量进行

读表操作

多个客户端并发进行读操作

批量读数据

缓存查找的结果

根据业务调整Memstore和BlockCache的大小比例

架构

client

访问HBase

维护cache,加快对HBase的访问

zookeeper

用于HBase的协调服务,保证有一个Master运行

存储寻址入口

监控RegionServer的上线和下线信息,实时通知Master

存储schema和table的元数据信息

Master

为RegionServer分配Region

为RegionServer进行负载均衡

发现RegionServer失效,重新分配其上的Region

管理table的增删改操作

RegionServer

维护Region,处理对Region的IO请求

负责切分在运行过程中,变得过大的Region

Region

每个Region保存表中一段连续的数据

每个表开始只有一个Region,随着数据的增加产生分裂

随着Region的不断分裂,会分布在其他的RegionServer中

Memstore和storefile

一个storefile代表一个列族

先将数据写入Memstore中,超过阈值产生溢写,写入单独storefile文件中

storefile数量超过阈值会进行合并

· minor compaction

• 小而少的文件合并

• 效率高

· major compaction

• 所有storefile合并成一个文件

• 默认24小时触发一次

storefile的大小和数量超过一定阈值后,会分裂Region,负载到其他的Region Server中

BlockCache

· RegionServer内存的一部分

· 客户端查数据是先查Memstore,再查BlockCache,最后再storefile

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • HBase篇--初始Hbase

    1.HBase,是一个高可靠性、高性能、面向列、可伸缩、实时读写的分布式数据库。 2.利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapRe...

    LhWorld哥陪你聊算法
  • Hbase(4)——hive on hbase

    此时可以看见basketball2已经在hbase上建立了 ps:CREATE TABLE basketball2(num int,team string...

    gzq大数据
  • Hbase(四):Hbase原理

    hbase表中的数据按照行键的字典顺序排序 hbase表中的数据按照行的的方向切分为多个region 最开始只有一个region 随着数据量的增加 产生分裂...

    许喜朝
  • Hbase 学习(十) HBase Snapshots

    HBase Snapshots允许你对一个表进行快照(即可用副本),它不会对Region Servers产生很大的影响,它进行复制和 恢复操作的时候不包括数据拷...

    岑玉海
  • Hbase(五) JavaApi操作Hbase

    许喜朝
  • Hbase

    最近在逐步跟进Hbase的相关工作,由于之前对Hbase并不怎么了解,因此系统地学习了下Hbase,为了加深对Hbase的理解,对相关知识点做了笔记,并在组内进...

    大学里的混子
  • Hbase

    用户1499526
  • Hbase

    [root@ha1 sungrow]# cd /soft/hbase-1.1.10/bin [root@ha1 bin]# hbase shell

    用户5927264
  • HBase篇--HBase常用优化

    HBase优化能够让我们对调优有一定的理解,当然企业并不是所有的优化全都用,优化还要根据业务具体实施。

    LhWorld哥陪你聊算法
  • Hbase(二)Hbase常用操作

    许喜朝
  • Hbase(三)Hbase安装配置

    ​ 修改conf/hbase-site.xml,配置hbase使用的数据文件的位置,默认在/tmp/hbase-[username],此目录是linux的临时目...

    许喜朝
  • Hbase入门(一)——初识Hbase

    本文将介绍大数据的知识和Hbase的基本概念,作为大数据体系中重要的一员,Hbase弥补了Hadoop只能离线批处理的不足,支持存储小文件,随机检索。而这种特性...

    实时计算
  • Hbase(一)了解Hbase与Phoenix

      HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”...

    大道七哥
  • HBase篇--HBase操作Api和Java操作Hbase相关Api

    Hbase shell启动命令窗口,然后再Hbase shell中对应的api命令如下。

    LhWorld哥陪你聊算法
  • Hbase篇--Hbase和MapReduce结合Api

    Mapreduce可以自定义Inputforma对象和OutPutformat对象,所以原理上Mapreduce可以和任意输入源结合。

    LhWorld哥陪你聊算法
  • Hbase(5)——python用happybase操作Hbase

    首先要在jvm上开启hbase服务 并且在jvm上的9090端口开启thrift服务:hbase thrift start-port:9090

    gzq大数据
  • Hbase-2.0.0_04_Hbase原理 1.1. Hbase特性:

    参考博客:Hadoop HBase概念学习系列之HBase里的Zookeeper(二十一)

    踏歌行
  • Hbase访问方式之Hbase shell 转

    Hbase的访问方式 1、Native Java API:最常规和高效的访问方式;  2、HBase Shell:HBase的命令行工具,最简单的接口,适合...

    双面人
  • Hbase shell

    大数据工程师-公子

扫码关注云+社区

领取腾讯云代金券