首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

HBase案例 | 20000个分区导致HBase集群宕机事故处理

事故现场 项目上大数据平台拥有一个10个节点的HBase集群,主要业务表有十几张,每张表创建的时候做了包含10个region的预分区,并使这些分区均匀分布在了不同regionserver上。...经过一段时间的运行,由于业务量比较大,集群region分区数量已经达到23000之多了,平均每个regionserver节点分区数量在2300个左右。...检查HBase正常日志可以确认,HBase flush操作非常频繁。...这里主要是考虑到region分区数量比较多,业务TPS比较高,需要更多的写缓存即memstore空间。...业务数据量比较大导致HBase分区过多,实时数据的高频写入使得HBase做频繁的刷写与合并操作,给hdfs造成非常大的压力,datanode线程池被打满,写hdfs失败造成了HBase集群宕机。

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

    HBase 的MOB压缩分区策略介绍

    HBase应用场景非常广泛;社区前面有一系列文章。大家可以到社区看看看;张少华同学本篇主要讲HBase的MOB压缩分区策略介绍,非常赞!大力推荐!...社区系列文章: 新数仓系列:HBase关键能力和特性梳理 HBase 和 Cassandra的浅谈 新数仓系列:Hbase周边生态梳理(1) HBase设计之rowkey设计 ---- 介绍 HBase...对应分区r2中startkey的散列值 在MOB区域中,从2016.1.1-2016.1.2,r1分区中每天有两个MOB文件,2016.1.1当天,分区r2中有三个MOB文件 通过MOB压缩后,r1、r2...从HBASE-16981引入按周和月的MOB压缩分区策略,对此MOB文件存放比例相应提高了7%和30%。 HBASE-16981基本思路是将一周或者一个月的MOB文件压缩合并为更大的文件。...乘以分区数和12乘以分区数。

    1.5K10

    优化 HBase - HBase 的预分区及 rowkey 设计原则与方法

    1.1HBase 的 split 机制 通常 HBase自动处理 Region 的拆分操作,当 Region 的大小到达一定阈值后,会把过大的 Region 一分为二,之后在两个 Region 中都能继续增长数据...对于拆分合并风暴,通常需要关闭 HBase自动管理拆分,然后手动调用 HBase 的 split 和 major_compact,来分散 I/O 负载。...1.2 预分区的意义 为了解决这些问题,预分区就是一种很好的方法,通常预分区可以和 rowkey 的设计结合起来使用。 所谓预分区,就是预先创建 HBase 的表分区。...这里需要注意的是,HBase自动对文件中的序列按字典序进行排序,再生成预分区,因此,文件中设置的序列规则对排序没有讲究。 1.3.4....新建 Maven 项目,在 pom.xml 文件中配置 HBase 的 JAR 包依赖,项目会自动下载所需的依赖包,并自动实现依赖导入:

    3.7K34

    hbase的预region分区 脚本 经典 转

    如果想关闭自动拆分改为手动拆分,建议同时修改hbase.hregion.max.filesize和hbase.regionserver.region.split.policy值。...也就是说分区文件中填的都是key取值范围的分隔点,如下图所示: ? 2.hbase shell中建分区表,指定分区文件 在hbase shell中直接输入create,会看到如下的提示: ?...三、hbase分区方案   在HBase中,表会被划分为1...n个Region,被托管在RegionServer中。...如果数据装不住了,对于partition方式预分区的话,如果让它自然分裂的话,情况分严重一点。...因为分裂出来的分区号会是一样的,所以计算到partitionId的话,其实还是回到了顺序写年代,会有部分热点写问题出现,如果使用partition方式生成主键的话,数据增长后就要不断地调整分区了,比如增多预分区

    2K20

    HBase Region自动切分细节

    Region自动切分是HBase能够拥有良好扩张性的最重要因素之一,也必然是所有分布式系统追求无限扩展性的一副良药。...HBase系统中Region自动切分是如何实现的,这里面涉及很多知识点,比如Region切分的触发条件是什么、Region切分的切分点在哪里、如何切分才能最大的保证Region的可用性、如何做好切分过程中的异常处理...、切分过程中要不要将数据移动等,这篇文章将会对这些细节进行基本的说明,一方面可以让大家对HBase中Region自动切分有更加深入的理解,另一方面如果想实现类似的功能也可以参考HBase的实现方案。...阈值(hbase.hregion.max.filesize)设置较大对大表比较友好,但是小表就有可能不会触发分裂,极端情况下可能就1个,这对业务来说并不是什么好事。...父region分裂为两个子region后,将daughter A、daughter B拷贝到HBase根目录下,形成两个新的region。

    2.1K71

    HBase设计结构和原理

    Region Split Region的大小超出了预设的阈值,则需要将该Region自动分裂成为两个Region 分裂过程中,被分裂的Region会暂停读写服务。...父Region的数据文件并不会真正的分裂,而是仅仅通过更改引用方式,来实现快速分裂,即通过新的访问方式访问源文件,HBase后台会自己进行分裂操作 客户端册所缓存的父Region的路由信息需要被更新 2.4...预分区 默认情况下,创建一个表,hbase会为其自动分区,即Region Server会不断工作,导致Region Server负载过大,所以比较好的办法是根据业务提前对表进行分区,例如有5个region...被多个Region Server管理,在插入数据的时候,会向5个region中分别插入,负载均衡 创建分区的方法: hbase> create ‘ns1:t1’, ‘f1’, SPLITS =>...20181020’,’20181030’] ​ 2.指定分隔文件 ​ create ‘logs’,’info’,SPLITS => ‘opt/datas/logs_split.txt’ ​ 3.指定多少分区

    2K30

    HBase中的数据压缩与存储优化策略

    分区 在表创建时,根据预期的行键范围进行分区,减少数据热点 适用于数据访问较为均匀的场景,避免单一Region的过度负载 Region自动分裂 当Region的大小超过阈值时...,自动将其分裂成两个Region 适用于数据量持续增长的场景,避免单个Region过大导致性能问题 手动Region分裂 手动根据业务需求分裂Region,精确控制数据分布 适用于需要精确控制数据分布的场景...列族级别的Bloom过滤器 根据列族的需求启用Bloom过滤器,可以进一步优化查询效率 适用于需要精确查询的列族,减少无效的数据扫描 存储优化策略的配置与实现 1 配置预分区...在创建表时,可以通过配置预分区来优化数据的存储和访问。...以下是一个预分区的示例代码: import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration

    16510

    如何在 HBase 中有效处理热点数据

    区域分裂不及时:当数据过于集中时,HBase 没有及时分裂区域,导致热点区域持续承受大量请求。写操作频繁:同一行或区域上的写操作频繁,导致该区域的 I/O 压力增加。...区域分裂不均衡:热点区域没有及时分裂分裂后仍然集中访问。热点数据的监控方法通过 HBase 的监控工具可以帮助发现热点问题。...2 使用预分区(Pre-splitting)预分区是另一种有效避免热点问题的方法。在创建表时,HBase 支持手动设置预分区。预分区可以将数据均匀分布到多个区域,避免数据过度集中在一个区域内。...可以通过增大写缓存、调整区域分裂策略等方式来提升 HBase 的性能。...2 及时监控与调优定期监控 HBase 的运行状态,及时发现热点区域并采取优化措施。根据实际的业务需求调整 HBase 的配置,如增大写缓存、调整区域分裂策略等。

    13600

    HBase中使用预分区策略提升性能的详细指南

    HBase的表设计中,默认情况下,表在创建时只有一个Region,随着数据的不断写入,Region会达到一个设定的大小上限,然后通过自动分裂(auto-split),将数据分片为新的Region。...优点 描述 优化负载均衡 预分区使Region均匀分布,减少自动分裂的开销...创建带预分区的表HBase提供了多种方式在创建表时预先分区,最常见的方式是基于行键范围或自定义分区键进行预分区。...监控与调优在HBase集群运行时,监控各个Region的负载情况非常重要。如果发现某些Region的负载过高或过低,可以通过调整分区策略或手动分裂/合并Region进行优化。...表创建 使用HBase API或HBase Shell创建带预分区的表。 监控调优 通过监控工具定期检查Region负载,必要时调整分区策略。

    20300

    Hbase 入门知识点总结

    负责过大 region 的切分 Region HBase自动把表水平划分成多个区域(region),每个region会保存一个表里面某段连续的数据每个表一开始只有一个region,随着数据不断插入表,region...当一个reion达到一定的大小,为了负载均衡,我们需要分裂成两个region,这个过程就是 split。 hbase是如何处理 split 的?...当某个store(对应一个column family)的大小大于配置值 hbase.hregion.max.filesize的时候(默认10G)region就会自动分裂。...我们可以通过配置 hbase.regionserver.region.split.policy 来指定split策略,我们也可以写我们自己的split策略。 什么是预分区?...,也就达到了我们的需求,但是需要注意的是,随着数据越来越大,超出我们预估的 50G 那么这个时候,我们也需要重新对分区进行调整了 Hbase 数据查询方式 HBase的查询实现只提供两种方式: 按指定RowKey

    1.1K30

    Hbase面试题总结(大数据面试)

    3)面向列:面向列(族)的存储和权限控制,列(族)独立检索; 4)稀疏:空(null)列并不占用存储空间,表可以设计的非常稀疏; 5)数据多版本:每个单元中的数据可以有多个版本,默认情况下版本号自动分配...那么依照这个原则,我们可以将数据所要投放的分区提前大致的规划好,以提高 HBase 性能 . (3)RowKey 设计 一条数据的唯一标识就是 rowkey,那么这条数据存储于哪个分区,取决于 rowkey...预分区的目的主要是在创建表的时候指定分区数,提前规划表有多个分区,以及每个分区的区间范围,这样在存储的时候 rowkey 按照分区的区间存储,可以避免 region 热点问题。...会进行分裂,这将增加I/O开销,所以解决方法就是根据你的RowKey设计来进行预建分区,减少region的动态分裂。...18、为什么不建议在 HBase 中使用过多的列族 在 Hbase 的表中,每个列族对应 Region 中的一个Store,Region的大小达到阈值时会分裂,因此如果表中有多个列族,则可能出现以下现象

    50310

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券