前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

HBase

原创
作者头像
李才哥
修改2021-03-02 18:08:17
2.1K0
修改2021-03-02 18:08:17
举报
文章被收录于专栏:李才哥李才哥

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据模型
    • 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数量超过阈值会进行合并
      • storefile的大小和数量超过一定阈值后,会分裂Region,负载到其他的Region Server中
      • BlockCache
相关产品与服务
TDSQL MySQL 版
TDSQL MySQL 版(TDSQL for MySQL)是腾讯打造的一款分布式数据库产品,具备强一致高可用、全球部署架构、分布式水平扩展、高性能、企业级安全等特性,同时提供智能 DBA、自动化运营、监控告警等配套设施,为客户提供完整的分布式数据库解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档