学习
实践
活动
专区
工具
TVP
写文章

EMR(弹性MapReduce)入门之HBase集群使用(十)

面向: 面向存储和权限控制,并支持独立检索,可以动态增加,即,可单独对进行各方面的操作 列式存储,其数据在表中是按照某存储,这样在查询只需要少数几个字段时候,能大大减少读取数量 3. 版本: Hbase每一个数据存储有多个Version,比如住址,可能有多个变更,所以该可以有多个version 4. 稀疏性: 为空并不占用存储空间,表可以设计非常稀疏。 Region切分、主键索引、缓存机制使得Hbase在海量数据下具备一定随机读取性能,该性能针对Rowkey查询能够到达毫秒级别 LSM树,树形结构,最末端子节点是以内存方式进行存储,内存中小树会 一个 HStore 包含一个 MemStore 和多个 StoreFile ( 每个 HStore 对应 Table 一个族 cf )。 当一个 HStore 里面 StoreFile 数量增长到一定阈值之后,会触发Compact合并操作,将多个 StoreFiles 合并成一个 StoreFile。

58620

一文说清HBase存储结构

前言 HBase 是一个分布式版本、面向开源 KV 数据库。运行在 HDFS 基础上,支持 PB 级别、百万数据存储。 Row key :表主键,按照字典序排序。 簇:在 HBase 中,簇将表进行横向切割。 :属于某一个簇,在 HBase 中可以进行动态添加。 Cell : 是指具体 Value 。 TimeStamp 在 HBase 中充当作用就是版本号,因为在 HBase 中有着数据版本特性,所以同一个 KEY 可以有多个版本 Value 值(可以通过配置来设置多少个版本)。 HStore 是 HBase 核心存储单元,一个 HStore 由 MemStore 和 StoreFile 组成。 在 HStore 对应着是 Table 里面的 Column Family,不管有 CF 中有多少数据,都会存储在 HStore 中,为了避免访问不同 HStore 而导致效率低下。

1.1K20
  • 广告
    关闭

    2023新春采购节

    领8888元新春采购礼包,抢爆款2核2G云服务器95元/年起,个人开发者加享折上折

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Hbase性能优化百科全书

    正是因为HBase良好扩展性,才为海量数据存储提供了便利。 列式存储:列式存储,HBase是根据族来存储数据族下面可以有非常族在创建表时候就必须指定,而不用指定。 稀疏:稀疏主要是针对HBase灵活性,在族中,可以指定任意,在数据为空情况下,是不会占用存储空间。 ? 从我们使用Hbase开始,开发和调优将会一直伴随在系统整个生命周期。 如果业务要进行预分区,首先要明确rowkey取值范围或构成逻辑,假设我们rowkey组成为:两位随机数+时间戳+客户号,两位随机数范围从00-99,于是我划分了10个region来存储数据,每个 反转固定格式数值 以手机号为,手机号前缀变化比较少(如152、185等),但后半部分变化很多。如果将它反转过来,可以有效地避免热点。不过其缺点就是失去了有序性。 使用扫描缓存 如果HBase作为一个MapReduce作业而输入源,最好将MapReduce作业输入扫描器实例缓存setCaching()设置为比1大值。

    55050

    面试必考点:HBase Compaction机制

    ,不做任何删除数据、版本数据清理工作。 2)Major操作是对Region下HStore所有StoreFile执行合并操作,最终结果是整理合并出一个文件。 首先,对于HRegion里每个HStore进行一次判断,needsCompaction()判断是否足够多文件触发了Compaction条件。 Compaction对于读写操作影响 Compaction与Flush不同之处在于:Flush是针对一个Region整体执行操作,而Compaction操作是针对Region上一个Store而言,因此 如下图所示,我们假定该RegionServer上仅有一个Region,由于不同Row是在簇上有所区别,就会出现有些不同Store内占用内存不一致情况,这里会根据整体内存使用情况,或者RS使用内存情况来决定是否执行

    78021

    跟我一起云计算(3)——hbase

    它是一个针对大型分布式系统可靠协调系统,提供功能包括:配置维护、名字服务、分布式同步、组服务等。 HRegionServer内部管理了一系列HRegion对象,每个HRegion对应了Table中一个Region,HRegion中由多个HStore组成。 HStore HStore存储是HBase存储核心了,其中由两部分组成,一部分是 MemStore,一部分是StoreFiles。 在理解了上述 HStore基本原理后,还必须了解一下HLog功能,因为上述HStore在系统正常工作前提下是没有问题,但是在分布式系统环境中,无法避免系统出错或者宕机,因此一旦HRegionServer 接下来变化是解决索引字段查询问题。我们将主键字段和属性字段分开存储,储存在不同族下,索引查询只需要取出列族1下数据,再去最小集合族2里取得想要值。储存如下图: ?

    56950

    Hbase基本操作

    Hadoop 可以通过 HDFS 来存储结构化、半结构甚至非结构化数据,它是传统数据库补充,是海量数据存储最佳方法,它针对大文件存储,批量访问和流式访问都做了优化,同时也通过多副本解决了容灾问题 基本概念 RowKey(行键) 相当于RDBMS中主键 创建表时不需要指定行键,添加数据时指定 Column Family(族) 创建表时需要指定族,理论上列族数量不受限制,实际开发中 建议不超过三个 行键+族++时间戳 每一条数据都在这个单元中 默认只获取最后一个版本数据 namespace(名称空间) 相当于RDBMS中数据库 建表时如果不指定名称空间则使用默认defult名称空间 ']} #删除person表中行键为p1族basicname值 delete 'person','p1','basic:name' #删除person表中行键为p1所有 deleteall ' ,所以HRegion中数据不会出现交叉 存在不同HRegion中是为了分布式管理 HRegion中存在多个HStore HStore数量由数量决定,一个HStore中存在一个数据 一个

    16420

    HBase最佳实践-读性能优化策略

    某个业务起来之后集群其他部分业务延迟较大 这三种场景是表象,通常某业务反应延迟异常,首先需要明确具体是哪种场景,然后针对性解决问题。 优化原理:HBase是典型族数据库,意味着同一数据存储在一起,不同数据分开存储在不同目录下。 如果一个表有多个族,只是根据Rowkey而不指定族进行检索的话不同数据需要独立进行检索,性能必然会比指定查询差很多,很多情况下甚至会有2倍~3倍性能损失。 默认情况下BlockCache和Memstore配置相对比较均衡(各占40%),可以根据集群业务进行修正,比如读写少业务可以将BlockCache占比调大。 文件数量通常取决于Compaction执行策略,一般和两个配置参数有关:hbase.hstore.compactionThreshold和hbase.hstore.compaction.max.size

    1.6K60

    新数仓系列:HBase关键能力和特性梳理

    新数仓系列:开源组件运营(3) 新数仓系列:Hbase国内开发者生存现状(2) 新数仓系列:Hbase周边生态梳理(1) HBASE关键能力和特性 1、无固定模式(表结构不固定): 每行都有一个可排序主键和任意 3、数据版本:每个单元中数据可以有多个版本,默认情况下版本号自动分配,是单元格插入时时间戳。 4、高性能:针对Rowkey查询能够达到毫秒级别。 5、支持实时更新。 数据压缩,保存到读缓存中) HRegionServer内部管理了一系列HRegion对象,每个HRegion对 应了table中一个region,HRegion中由HStore组成。 每个HStore对应了Table中一个column family存储,可以看出每个columnfamily其实就是一个集中存储单元,因此最好将具备共同IO特性column放在一个column family 我们存储空间又很有限,尤其是HDFS这种副本容灾存储。再加上HBase在存储每一行数据时,分别要为每一保存一份rowKey,如果一行有10,光rowKey就要存储10份,开销可想而知。

    61940

    使用新存储文件跟踪功能解锁 S3 上 HBase

    我们在之前博文中介绍了 HBOSS 。 不幸是,当针对跨越数千个区域和数十 TB 更大工作负载和数据集运行 HBOSS 解决方案时,HBOSS 引发锁争会严重影响集群性能。 HStore编写高层设计 上面提到 HStore 组件聚合了几个与存储维护相关附加结构,包括 StoreEngine,它隔离存储文件处理特定逻辑。 这些文件放在 .filelist 目录中,而该目录又是实际族文件夹子目录。 StoreFileListFile初始化 每当区域在区域服务器上打开时,需要初始化其相关 HStore 结构。 存储文件跟踪转换器命令 可以使用两个新 HBase shell 命令来更改表或存储文件跟踪实现,并且可以用作转换最初未配置 FILE 跟踪器导入表替代方法: change_sft :允许更改单个表或存储文件跟踪实现

    14010

    HBase调优及优化20种方式(上)

    那么一个好环境部署应该是不低于10千兆网络.同时为了保障数据容错性,使用机架模式部署可以有效防止数据单点问题. 05 — regin太多不一定好 首先从hbase原理来讲,首先一个regionserver regionserver管理着多个region,每个region中有多个hstore组成,每个hstore对应表中column family中存储,hstore是hbase存储核心,由memstore 多个族会形成更多hfile小文件 不同族会共享region,split操作会导致io增加. 也就是说除了空间换时间、时间换空间之外,Bloomfilter使用了一种很低错误率来减少空间并且快速查询. ,一旦发现有不均衡情况,可以选择针对用于进行限流或者 罗列几个限制语句 限制用户u1每秒请求10次 hbase> set_quota TYPE => THROTTLE, USER => 'u1', LIMIT

    90720

    HBase 写吞吐场景资源消耗量化分析及优化

    本文从 HBase 写链路开始分析,然后针对少量随机读和海量随机写入场景入手,全方面量化分析各种资源开销, 从而做到以下两点: 在给定业务量级情况下,预先评估好集群合理规模 在 HBase 众多参数中 ,版本数据合并,数据删除标记清理等等,本文不做展开。 四、系统开销定量分析 为了简化计算,本节针对事件类数据写吞吐型场景,对 HBase 系统中开销做定量分析,做以下假设: 数据写入 Rowkey 是打散,不存在写热点 数据写入量及总量是可评估, : Major Compaction Minor Compaction 两者是独立,下面将分别针对两种 Compaction 做分析,最后取和。 其中每条数据参与 Minor Compaction 最大次数可以公式 math.log( 32000 / 25.6, 3) = 6 得到 这里用到两个变量是: FlushSize 默认是 128

    85210

    PostgreSQL索引类型

    1、B-tree PostgreSQL中,B-tree索引是最常用一种索引类型。 索引扫描比顺序扫描速度快,因为它可能只需要读取少部分页面,而顺序扫描可能读取几千个页面。 默认情况下,使用CREATE INDEX语句,会创建一个B-tree索引,这对于大多数常用数据类型比如文本、数字等适用性很强。 2、GIN 当数据类型在一中包含多个值时适用。 这种情况下最常见数据类型是hstore、range、jsonb等,并不是所有的数据类型都支持这种索引类型。 3、GiST GiST索引适用情况是: 有一些数据,它们和其他行同一值在某种程度上相互覆盖,此时适用。 最合适数据类型是:几何类型、全文检索时文本类型。 但最大问题是被限制在等值上所以需要寻找准确匹配。这使得哈希索引不那么灵活。 总结 B-tree 适用于大多数数据类型和查询。 GIN 适用于json/hstore数据类型。

    24110

    HBase极简教程

    HBase是一个开源,分布式版本,面向存储模型。它存储是松散型数据。 Column Family:  簇,一个table在水平方向有一个或者多个簇,簇可由任意多个Column组成,簇支持动态扩展,无须预定义数量及类型,二进制存储,用户需自行进行类型转换 Table Table随着记录增多不断变大,会自动分裂成份Splits,成为Regions 2. 一个region由[startkey,endkey)表示 3. HRegionServer管理一些HRegion对象; 每个HRegion对应Table中一个Region,HRegion由多个HStore组成; 每个HStore对应Table中一个Column Family 存储; Column Family就是一个集中存储单元,故将具有相同IO特性Column放在一个Column Family会更高效 HStore: HBase存储核心。

    73260

    hbase源码系列(十三)缓存机制MemStore与Block Cache

    之前在讲put时候,put是被添加到Store里面,这个Store是个接口,实现是在HStore里面,MemStore其实是它底下小子。 Region Server下面有若干个Region,每个Region下面有若干族,每个族对应着一个HStoreHStore里面有三个很重要类,在这章内容都会提到。 CacheConf是针对HFileBlock缓存,专门用来缓存快,默认是在读时候缓存块,也可以修改参数,让它在写时候也缓存,这个在数据模型定义时候提到过。 CacheConfig是一个HStore一个,属性是根据族定制,比如是否常驻内存,但是它内存用来缓存块BlockCache是Region Server全局共享globalBlockCache, 是在BucketSizeInfo数组里面的位置,它大小都是有固定,不能也不能少,这里就不详细介绍了。我们直接看WriteToCache这个方法吧,好验证一下之前想法。

    1.1K70

    深入理解 HBase Compaction 机制

    这里值得关注一点是只有在触发执行major compaction后才会真正删除数据,包含写入Delete数据、设置TTL族中已经过期数据以及版本号过大数据。 Minor Compaction 参数 Minor compaction涉及参数比major compaction要,各个参数目标是为了选择合适StoreFile,具体参数如下: 1.hbase.hstore.compaction.min 如果要调整,不建议调小该参数,这样会带来更频繁压缩,调大该参数同时其他相关参数也应该做调整。早期参数名称为hbase.hstore.compactionthreshold。 5.hbase.hstore.compaction.ratio 这个ratio参数作用是判断文件大小 > hbase.hstore.compaction.min.sizeStoreFile是否也是适合进行 Compaction 对读写请求影响 存储上写入放大 HBase Compaction会带来写入放大,特别是在写读少场景下,写入放大就会比较明显,下图简单示意了写入放大效果。 ?

    7.1K43

    HBase体系结构

    1、HRegion 当表大小超过设置值时,HBase会自动地将表划分为不同区域,每个区域包含所有行子集。 从物理上讲,一张表被拆分成了块,每一块儿就是一个HRegion.一个HRegion会保存一表里面某段连续数据,从开始主键到结束主键,一张完整表格是保存在多个HRegion上面。 读取数据时,HRegion服务器会先访问Hmemcache缓存,如果缓存中没有该数据,才会回到Hstores磁盘上面寻找,每个族都会有一个Hstore集合,每个Hstore集合包含很多具体HstoreFile 这个识别符来区分不同HRegion,这些数据就是元数据(META),而元数据本身也是被保存在HRegion里面的,所以我们称这个表为源数据表(META Table),里面保存就是HRegion标识符和实际 HBase数据模型   (注意是,每一条数据对应时间戳都是数字来表示,编号越大表示数据越旧,反之则表示数据越新) 参考《Hadoop 实战》

    54330

    关注

    腾讯云开发者公众号
    10元无门槛代金券
    洞察腾讯核心技术
    剖析业界实践案例
    腾讯云开发者公众号二维码

    相关产品

    • 云数据库 MySQL

      云数据库 MySQL

      腾讯云数据库MySQL是一种高性能、高可靠、高安全、可灵活伸缩的数据库托管服务,其不仅经济实惠,而且提供备份回档、监控、快速扩容、数据传输等数据库运维全套解决方案,为您简化 IT 运维工作,让您能更加专注于业务发展。

    相关资讯

    热门标签

    活动推荐

    扫码关注腾讯云开发者

    领取腾讯云代金券