首页 > 其他分享 >华为云HBase冷热分离最佳实践

华为云HBase冷热分离最佳实践

时间:2023-09-25 14:36:35浏览次数:42  
标签:存储 冷热 查询 华为 HBase 数据 cold

本文分享自华为云社区 《华为云HBase 冷热分离最佳实践》,作者:pippo。

HBase介绍

HBase是Hadoop Database的简称,是建立在Hadoop文件系统之上的分布式面向列的数据库,它具有高可靠、高性能、面向列和可伸缩的特性,提供快速随机访问海量数据能力。

HBase采用Master/Slave架构,由HMaster节点、RegionServer节点、ZooKeeper集群组成,底层数据存储在HDFS上。

整体架构如图所示:

HMaster主要负责:

  • 在HA模式下,包含主用Master和备用Master。
  • 主用Master:负责HBase中RegionServer的管理,包括表的增删改查;RegionServer的负载均衡,Region分布调整;Region分裂以及分裂后的Region分配;RegionServer失效后的Region迁移等。
  • 备用Master:当主用Master故障时,备用Master将取代主用Master对外提供服务。故障恢复后,原主用Master降为备用。

RegionServer主要负责:

  • 存放和管理本地HRegion。
  • RegionServer负责提供表数据读写等服务,是HBase的数据处理和计算单元,直接与Client交互。
  • RegionServer一般与HDFS集群的DataNode部署在一起,实现数据的存储功能。读写HDFS,管理Table中的数据。

ZooKeeper集群主要负责:

  • 存放整个 HBase集群的元数据以及集群的状态信息。
  • 实现HMaster主从节点的Failover。

HDFS集群主要负责:

  • HDFS为HBase提供高可靠的文件存储服务,HBase的数据全部存储在HDFS中。

结构说明:

Store

  • 一个Region由一个或多个Store组成,每个Store对应图中的一个Column Family。

MemStore

  • 一个Store包含一个MemStore,MemStore缓存客户端向Region插入的数据,当RegionServer中的MemStore大小达到配置的容量上限时,RegionServer会将MemStore中的数据“flush”到HDFS中。

StoreFile

  • MemStore的数据flush到HDFS后成为StoreFile,随着数据的插入,一个Store会产生多个StoreFile,当StoreFile的个数达到配置的阈值时,RegionServer会将多个StoreFile合并为一个大的StoreFile。

HFile

  • HFile定义了StoreFile在文件系统中的存储格式,它是当前HBase系统中StoreFile的具体实现。

HLog(WAL)

  • HLog日志保证了当RegionServer故障的情况下用户写入的数据不丢失,RegionServer的多个Region共享一个相同的HLog。

HBase提供两种API来写入数据。

  • Put:数据直接发送给RegionServer。
  • BulkLoad:直接将HFile加载到表存储路径。

HBase 冷热分离诉求

HBase是Hadoop Database的简称,是建立在Hadoop文件系统之上的分布式面向列的数据库,它具有高可靠、高性能、面向列和可伸缩的特性,提供快速随机访问海量数据能力。

在海量大数据场景下,表中的部分业务数据随着时间的推移仅作为归档数据或者访问频率很低,同时这部分历史数据体量非常大,比如订单数据或者监控数据,如果降低这部分数据的存储成本将会极大的节省企业的成本。

冷热分离功能支持将冷热数据存储在不同的介质上,冷数据的存储类型为普通IO存储,热数据的存储类型为超高IO存储。普通IO存储的价格仅为超高IO存储的30%,大大降低了存储成本。

HBase 冷热分离介绍

HBase支持对同一张表的数据进行冷热分离存储。用户在表上配置数据冷热时间分界点后,HBase会依赖用户写入数据的时间戳(毫秒)和时间分界点来判断数据的冷热。数据开始存储在热存储上,随着时间的推移慢慢往冷存储上迁移。同时用户可以任意变更数据的冷热分界点,数据可以从热存储到冷存储,也可以从冷存储到热存储。

整体架构如图所示:

1236.png

命令介绍

设置表的冷热分界线

创建冷热分离表:

hbase(main):002:0> create 'hot_cold_table', {NAME=>'f', COLD_BOUNDARY=>'86400'}

参数说明:

NAME:需要冷热分离的列族。

COLD_BOUNDARY:冷热分离时间点,单位为秒(s)。例如COLD_BOUNDARY为86400,代表86400秒(一天)前写入的数据会被自动归档到冷存储。

取消冷热分离。

hbase(main):004:0> alter 'hot_cold_table', {NAME=>'f', COLD_BOUNDARY=>""}

为已经存在的表设置冷热分离,或者修改冷热分离分界线,单位为秒。

hbase(main):005:0> alter 'hot_cold_table', {NAME=>'f', COLD_BOUNDARY=>'86400'}

查询冷热分离是否设置或者修改成功

hbase(main):005:0> desc 'hot_cold_table'

数据写入

冷热分离的表与普通表的数据写入方式完全一致,数据会先存储在热存储(超高IO)中。随着时间的推移,如果一行数据满足当前时间-时间列值>COLD_BOUNDARY设置的值条件,则会在执行Compaction时被归档到冷存储(普通IO)中。

插入记录

执行“put”命令往指定表插入一条记录,需要指定表的名称,主键,自定义列,以及插入的具体值。

hbase(main):004:0> put 'hot_cold_table','row1','cf:a','value1'

参数说明:

hot_cold_table:表的名称。

row1:主键。

cf:a:自定义的列。

value1:插入的值。

数据查询

由于冷热数据都在同一张表中,因此用户所有的查询操作都只需在一张表内进行。在查询时,建议通过配置TimeRange来指定查询的时间范围,系统将会根据指定的时间范围决定查询模式,即仅查询热存储、仅查询冷存储或同时查询冷存储和热存储。如果查询时未限定时间范围,则会导致查询冷数据。在这种情况下,查询吞吐量会受到冷存储的限制。

随机查询

不指定HOT_ONLY参数来查询数据。在这种情况下,将会查询冷存储中的数据。

hbase(main):001:0> get 'hot_cold_table', 'row1'

通过指定HOT_ONLY参数来查询数据。在这种情况下,只会查询热存储中的数据。

hbase(main):002:0> get 'hot_cold_table', 'row1', {HOT_ONLY=>true}

通过指定TimeRange参数来查询数据。在这种情况下,CloudTable将会比较TimeRange和冷热边界值,以确定是只查询热存储还是冷存储中的数据,还是同时查询热冷存储中的数据

hbase(main):003:0> get 'hot_cold_table', 'row1', {TIMERANGE => [0, 1568203111265]}

范围查询

不指定HOT_ONLY参数来查询数据。在这种情况下,将会查询冷存储中的数据。

hbase(main):001:0> scan 'hot_cold_table', {STARTROW =>'row1', STOPROW=>'row9'}

通过指定HOT_ONLY参数来查询数据。在这种情况下,只会查询热存储中的数据。

hbase(main):002:0> scan 'hot_cold_table', {STARTROW =>'row1', STOPROW=>'row9', HOT_ONLY=>true}

通过指定TimeRange参数来查询数据。在这种情况下,CloudTable将会比较TimeRange和冷热边界值,以确定是只查询热存储还是冷存储中的数据,还是同时查询热冷存储中的数据。

hbase(main):003:0> scan 'hot_cold_table', {STARTROW =>'row1', STOPROW=>'row9', TIMERANGE => [0, 1568203111265]}

数据合并

  • 合并表所有分区的热数据区。

    hbase(main):002:0> major_compact 'hot_cold_table', nil, 'NORMAL', 'HOT'

  • 合并表所有分区的冷数据区。

    hbase(main):002:0> major_compact 'hot_cold_table', nil, 'NORMAL', 'COLD'

  • 合并表所有分区的热冷数据区。

    hbase(main):002:0> major_compact 'hot_cold_table', nil, 'NORMAL', 'ALL'

HBase 冷热分离效果

cke_1565.png

点击关注,第一时间了解华为云新鲜技术~

 

标签:存储,冷热,查询,华为,HBase,数据,cold
From: https://www.cnblogs.com/huaweiyun/p/17727856.html

相关文章

  • 用智慧PC破局,华为引领产业新方向
    整个PC市场仍处于低迷之中,华为是唯一亮点。近日,捷孚凯市场咨询(中国)有限公司(以下简称GFK)发布了2023年7月份笔记本零售市场报告,中国大陆笔记本电脑零售市场季度销量同比下降10%,环比下降37%。而在轻薄本电脑细分零售市场中:华为品牌份额为23.6%,同比增长1.6%,环比增长4.4%。华为......
  • 用智慧PC破局,华为引领产业新方向
    整个PC市场仍处于低迷之中,华为是唯一亮点。近日,捷孚凯市场咨询(中国)有限公司(以下简称GFK)发布了2023年7月份笔记本零售市场报告,中国大陆笔记本电脑零售市场季度销量同比下降10%,环比下降37%。而在轻薄本电脑细分零售市场中:华为品牌份额为23.6%,同比增长1.6%,环比增长4.4%。......
  • 华为云ROMA Connect行业生态联盟成立,携手共建行业软件合作新生态
    9月22日,在上海举办的华为全联接大会2023大会上,华为云ROMAConnect联合多家生态伙伴,成立华为云ROMAConnect行业生态联盟,携手共建企业应用集成平台和行业软件合作新生态,致力于为客户数字化转型提供更专业的联合解决方案,打破时间、空间、开放鸿沟,联接企业现在与未来。华为云ROMAConn......
  • 华为悍将余承东:吹牛第一名 干啥啥都行
    作者:积溪螳螂观察简评:华为王者归来,余承东归不可没,从华为的首席吹牛官,到通信、手机领域的世界第一,余承东的遥遥领先真不是随便说说的#华为#余承东#华为发布会他是华为的疯子总有疯狂的想法冒出还树敌无数让人恨之入骨连任正非都吐槽他说他“越骂越疯”他也是华为的首席吹牛官张口......
  • 华为交换机DHCP snooping功能开启
    客户网络环境是使用DHCP来自动分配地址的。但是有的人私接小路由器wifi。导致小路由器的dhcp地址分发到了网络中,引起了局部的网络中断问题。解决方法:开启DHCPsnooping功能。原理:通过全局先开启dhcpsnoopingenable功能,再在普通接口或者vlan下再次启用dhcpsnoopingenable。......
  • 华为云云耀云服务器L实例评测|伪分布式环境下部署hadoop2.10.1
    文章目录前言云耀云服务器L实例简介Hadoop简介一、配置环境购买云耀云服务器L实例查看云耀云服务器L实例状态重置密码查看弹性公网IP地址FinalShell连接服务器二、搭建Hadoop单机版本详细安装步骤如下:我们先开始配置java环境hadoop2.x接下来需要利用vim来操作core-site和hdfs-si......
  • 涡流管:神秘的冷热分离器
    涡流管(VortexTube)这一神奇的设备能够将压缩气体分成冷气和热气。这种现象一直困扰着科学家,因为其工作原理至今还不完全清楚。本文将尝试深入探讨这一领域,为您揭开涡流管的秘密。1.涡流管的起源涡流管的发现可以追溯到1933年,由法国物理学家GeorgeRanque首次描述。他在研究......
  • 2023华为杯数模C题——大规模创新类竞赛评审方案研究
    B题——大规模创新类竞赛评审方案研究思路:采用数据分析等手段改进评分算法性能完成情况资料获取问题一在每个评审阶段,作品通常都是随机分发的,每份作品需要多位评委独立评审。为了增加不同评审专家所给成绩之间的可比性,不同专家评审的作品集合之间应有一些交集。但有的交集......
  • 20230922学习总结java连接HBASE
    连接条件:1、所有虚拟机上运行hadoop集群、运行zookeeper进程守护 2、向项目中导入即hbase安装目录下的conf文件夹中的两个文件 3、添加maven依赖<dependencies><dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-server</ar......
  • 华为datacom-HCIA​ 华为datacom-HCIA 1​ 1. 第四弹 5​ 1.1. OSPF认证 5​ 1.1.1.
    华为datacom-HCIA华为datacom-HCIA11.第四弹51.1.OSPF认证51.1.1.基于接口认证51.1.1.1.接口认证更优先61.1.1.2.[R2]interfaceg0/0/161.1.1.3.[R2-g0/0/1]ospfauthentication-modesimplehuawei61.1.1.3.1.明文认证61.1.1.4.[R2-g0/0/1]ospfauthentication-mo......