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

HBase漫谈 | HBase分区过多影响&合理分区数量

前段时间总结了一篇关于HBase由于分区过多导致集群宕机的文章,感兴趣的同学可以点击原文《HBase案例 | 20000个分区导致HBase集群宕机事故处理》阅读参考。...本文重点参考HBase官网,从分区过多这个角度出发,进一步聊一聊HBase分区过多的影响以及单节点合理分区数量等。...HBase 分区概念 接触过HBase的同学都知道,HBase每张表在底层存储上是由至少一个Region组成,Region实际上就是HBase表的分区。...HBase新建一张表时默认Region即分区的数量为1,一般在生产环境中我们都会手动给Table提前做 "预分区",使用合适的分区策略创建好一定数量的分区并使分区均匀分布在不同regionserver上...切入主题:HBase分区过多有哪些影响? 分区过多会带来很多不好的影响,主要体现在以下几个方面。

3.7K20

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
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Hive 基础(1):分区、桶、Sort Merge Bucket Join

    分区表指的是在创建表时指定的partition的分区空间。 Hive可以对数据按照某列或者某些列进行分区管理,所谓分区我们可以拿下面的例子进行解释。...在产生分区时,就可以按照日志产生的日期列进行划分。把每一天的日志当作一个分区。 将数据组织成分区,主要可以提高数据的查询速度。至于用户存储的每一条记录到底放到哪个分区,由用户决定。...即用户在加载数据的时候必须显示的指定该部分数据放到哪个分区。 1.1 实现细节 1、一个表可以拥有一个或者多个分区,每个分区以文件夹的形式单独存在表文件夹的目录下。...由于这样对每个桶的连接变成了高效的归并排序(merge-sort), 因此可以进一步提升map端连接的效率。...A031/516857.html  Hadoop权威指南 第12章 Hive简介 P384 http://superlxw1234.iteye.com/blog/1545150  hive--Sort Merge

    3.4K100

    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预分区 在介绍 rowkey 设计之前,先来了解 HBase 的预分区,因为预分区跟 rowkey 设计密不可分。rowkey 设计完成后,需要通过预分区来落地实现。...HBase 默认的 Region split 策略是,根据以下公式确定 split 的 maxFileSize: 其中,r为在线 Region 个数,maxFileSize由参数hbase.hregion.max.filesize...1.2 预分区的意义 为了解决这些问题,预分区就是一种很好的方法,通常预分区可以和 rowkey 的设计结合起来使用。 所谓预分区,就是预先创建 HBase 的表分区。...使用 Java API 预分区 使用 HBase 提供的 Java API 中的 HTableDescriptor 方法,指定 splitKeys 算法,在创建表的同时实现预分区的生成。...: 图1-3-5:使用 API 进行预分区操作 在 HBase Web 页面上查看新建表的预分区: 图1-3-6:查看使用 API 创建的预分区 d.

    3.7K34

    hbase的预region分区 脚本 经典 转

    根据公式min(r^2*flushSize,maxFileSize)确定split的maxFileSize,其中r为在线region个数,maxFileSize由hbase.hregion.max.filesize...二、hbase分区示例 步骤: 1.规划hbase分区 首先就是要想明白数据的key是如何分布的,然后规划一下要分成多少region,每个region的startkey和endkey是多少,然后将规划的...也就是说分区文件中填的都是key取值范围的分隔点,如下图所示: ? 2.hbase shell中建分区表,指定分区文件 在hbase shell中直接输入create,会看到如下的提示: ?...三、hbase分区方案   在HBase中,表会被划分为1...n个Region,被托管在RegionServer中。...如果知道Hbase数据表的key的分布情况,就可以在建表的时候对hbase进行region的预分区。这样做的好处是防止大数据量插入的热点问题,提高数据插入的效率。

    2K20

    服务器home分区在线转lvm

    的空间占满 第二块磁盘容量4T,仅一个分区,已占用300G 所有分区都是普通Linux分区 lvm简介 lvm的核心概念有以下四个: ①PE  (Physical Extend)  物理拓展 ②PV  ...创建pv vgcreate创建vg lvcreate创建lv 如果对lvm的概念还有不了解的地方,参考这里 新建lvm分区 新建一个lvm分区有两种方式。...要么缩减第二块硬盘的现有分区,并将剩余空间格式化为lvm分区;要么新增硬盘,并直接分区为lvm格式。...卸载磁盘,否则无法进行缩减分区操作 拖动或者输入容量,实现分区缩减 剩余的容量重新分区,选择lvm格式 (如果没有该选项,sudo apt install lvm2安装) (以下两张图片是事后截图,作示例用...可以看到,lvm分区与普通分区不同,即使没有用那么多空间,gparted也认为空间被占满了) [iofhducl9t.png] [kb30iom1p4.png] 创建lvm分区并挂载 与新建磁盘一节的内容很相似

    2.5K20

    在线重定义“巧改”分区

    什么是在线重定义 要了解什么是在线重定义技术,我想从表分区开始说起。在生产系统运维过程中,经常遇到的一个需求是如何把一个数据量非常大的普通表改造成分区表。...4按需求创建一个已分区的中间表 ? 以上步骤完成准备工作,开始执行在线重定义过程。 5检查源表是否具备在线重定义的条件 ? 6开始在线重定义,这一步相当于初始化工作,耗时比较长 ?...9完成在线重定义过程,执行后,中间表和源表的表名互换 ? 10删除中间表,并将索引重命名回来 此时的中间表已经是原来未分区的普通表,而源表已经变成了分区表 ?...至此,使用在线重定义进行表分区改造的工作已经完成。...这组数据也论证了使用在线重定义进行分区表改造的可行性和稳定性。

    95960

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

    本文将深入探讨如何在HBase中使用预分区策略提升写性能,并通过实例分析和代码展示详细的实现过程。...更好的可扩展性在高并发场景下,预分区策略有助于处理大规模数据,确保系统扩展性。HBase分区策略的最佳实践确定合理的分区数我们需要根据预期的数据量和负载确定合理的分区数。...创建带预分区的表HBase提供了多种方式在创建表时预先分区,最常见的方式是基于行键范围或自定义分区键进行预分区。...以下是如何通过HBase Shell实现预分区的过程。...表创建 使用HBase API或HBase Shell创建带预分区的表。 监控调优 通过监控工具定期检查Region负载,必要时调整分区策略。

    20600

    动态在线扩容root根分区大小的方法详解

    前言 本文主要介绍了关于动态在线扩容root根分区大小的相关内容,分享出来供大家参考学习,下面话不都说了,来一起看看详细的介绍吧。...由于 MBR 容量有限,设计的时候,只设计成4个分区记录。用起来,可以作4个主分区,或者3个主分区和一个扩展分区。...如果超过四个分区,系统允许在额外的硬盘空间放另一份磁盘分区信息,那就是扩展分区,当硬盘被分出一个扩展分区的时候,实际上扩展分区在 MBR 磁盘分区表中的信息为另外那份分区表的位置。...所以,在 扩展分区 里面还要划分 逻辑分区 才能使用。 每个硬盘最多只允许4个主分区,其他的分区只能放在扩展分区中。...首先,输入 n 创建新分区,然后选择 l 设置新分区为逻辑分区,接下来依次设置分区的起始、终止位置(默认即完全利用这块磁盘上剩余的所有空间,所以默认即可)。创建出的分区,编号为 6。

    2.4K40

    一场比较有深度的面试

    一、你能简单描述一下HBase吗?能画出它的架构图吗? HBase是一个面向列的 NoSQL 分布式数据库,它利用HDFS作为底层存储系统。那么,HBase相对于传统的关系型数据库有什么不同呢?...客户端每隔3s发送一次心跳包给服务器,通知服务器自己仍然在线,并获取服务器数据更新 —— 心跳包可以防止TCP的死连接问题,避免出现长时间不在线的死链接仍然出现在服务端的管理任务中。...(每个partitionIdx表示一个分区,一个分区对应一个reduce)             Combiner:如果设置了Combiner,那么在Sort之后,还会对具有相同key的键值对进行合并...合并(Merge):溢写可能会生成多个文件,这时需要将多个文件合并成一个文件。合并的过程中会不断地进行 sort & combine 操作,最后合并成了一个已分区且已排序的文件。...如果生成了多个溢写文件,它们会被merge成一个有序的最终文件。这个过程也会不停地执行 sort & combine 操作。

    60830

    Hbase、Kudu和ClickHouse全视角对比

    Mutation具体过程 首先,使用where条件找到需要修改的分区;然后,重建每个分区,用新的分区替换旧的,分区一旦被替换,就不可回退;对于每个分区,可以认为是原子性的;但对于整个mutation,如果涉及多个分区...•原始事实类数据:如订单、司机乘客的GPS轨迹、日志等,主要用作在线和离线的数据供给。数据量大,对一致性和可用性要求高,延迟敏感,实时写入,单点或批量查询。•中间结果数据:指模型训练所需要的数据等。...业务方的需求如下: •在线查询订单生命周期的各个状态,包括status、event_type、order_detail等信息。主要的查询来自于客服系统•在线历史订单详情查询。...•大批次低频率的写入,减少parts数量,减少服务器merge,避免Too many parts异常。通过两个阈值控制数据的写入量和频次,超过10w记录写一次或者30s写一次。...,follower负责读请求,总结来说,一个ts可以服务多个tablet,一个tablet可以被多个ts服务(基于tablet的分区,最低为2个分区)。

    9.8K20

    HBASE Region数量增多问题描述及解决方案

    文章目录 HBASE Region数量增多问题描述及解决方案 1. 问题描述 1.1 HBase 分区概念 1.2 region过多影响 1.3 合理region数量 2....问题描述 1.1 HBase 分区概念 HBase每张表在底层存储上是由至少一个Region组成,Region实际上就是HBase表的分区。...HBase新建一张表时默认Region即分区的数量为1,随着数据增长一个分区在达到一定大小时会自动Split,一分为二。...通常情况下,生产环境的每个regionserver节点上会有很多Region存在,我们一般比较关心每个节点上的Region数量,主要为了防止HBase分区过多影响到集群的稳定性。...merge_empty_regions.rb namespace.tablename # # Non Test - ie actually do the merge: # # hbase org.jruby.Main

    2.5K31

    Hbase 基础 Rowkey CF 架构 概述 预分区及Rowkey设计 学习笔记

    Hbase Rowkey CF 架构 概述 预分区及Rowkey设计 学习笔记 1. 概述 HBase是建立在Hadoop文件系统之上的分布式面向列的数据库。...2.3 Region Region的概念和关系型数据库的分区或者分片差不多。...预分区与rowkey设计(如何解决数据倾斜和热点问题) HBase中的行是按照rowkey的字典顺序排序的,这种设计优化了scan操作,可以将相关的行以及会被一起读取的行存取在临近位置,便于scan。...3.1 预分区设计 预分区,让表的数据可以均衡的分散在集群中,而不是默认只有一个region分布在集群的一个节点上。...(预分区个数=节点的倍数,看数据量估算,region不足了会被分列,预分区后每个region的rowkey还是有序的) 一个RegionServer能管理10-1000个Region,0.92.x版本后

    1.3K51

    storm自定义分组与Hbase分区结合节省内存消耗

    Hbas预分区 在系统中向hbase中插入数据时,常常通过设置region的预分区来防止大数据量插入的热点问题,提高数据插入的效率,同时可以减少当数据猛增时由于Region split带来的资源消耗...大量的预分区数量会导致hbase客户端缓存大量的分区地址,导致内存的增长,某些系统中一个JVM进程中会开启几十个独立的hbase客户端对象,同时会查询多张Hbase表,这样JVM进程就会缓存 (预分区数...比如那种Hbase客户端会有缓存一整张hbase.meta表数据的系统又或者那种hbase分区达到上万的系统,那么一个woeker中地址的缓存会达到几百兆,这个时候从原理上就可以进行设计了来节省资源消耗...可以结合storm的自定义分区,不再使用storm提供的分组策略,我们把作用于hbase的散列算法来作为storm的分组策略,就可以得到storm的task与hbase的预分区一一对应了。...bolt的并行度与hbase的预分区一一对应,每一个taske中的hbase客户端只会缓存对应的几个hbase的表预分区的地址信息。

    30920
    领券