首页 > 其他分享 >hbase进阶

hbase进阶

时间:2024-11-22 21:57:13浏览次数:1  
标签:进阶 memstore flush 哈希 rowkey hbase 默认值

hbase参数优化

hbase.hregion.memstore.flush.size
默认值是128MB,当memstore的数据达到128MB时,写入磁盘,以storefile文件存在,最后以Hfile形式存储到HDFS上
hbase.regionserver.global.memstore.size
默认值是0.4,当我们regionserver 所有memstore占用内存在总内存的比例,达到这个值的时候,从整个rs中找出最需要flush的region进行flush,# 达到该值会触发阻塞
hbase.regionserver.global.memstore.size.lower.limit
默认值是0.95,是上一个rs整个memstore占用内存在总内存的40%中的95%
# 达到该值会触发刷写

hbase的rowkey设计

  • rowkey 唯一原则
  • rowkey 长度原则
  • rowkey 散列原则(数据均衡分布,避免了热点数据的造成)

热点问题

避免热点的方法:
加盐:在rowkey前面增加一个随机数,使他跟之前的rowkey不一样,做区分

哈希:哈希会使同一行永远用一个前缀加盐。 哈希也可以使负载均衡分散到整个集群,但是读却是可以预测的

反转:将我们经常改变的(没有意义的部分)rowkey放在前面,有效的随机rowkey

时间戳”反转“:让时间戳作为行键,但是我们最新的时间戳在最后面,需要将
最新的时间戳放在前面,通过使用最大时间戳99999减去最新时间戳,那么最新的时间戳就在靠前的位置

标签:进阶,memstore,flush,哈希,rowkey,hbase,默认值
From: https://www.cnblogs.com/wangxiaojian-lina/p/18563789

相关文章

  • HbaseRowKey的设计和热点问题
    1、RowKey的唯一原则必须在设计上保证其唯一性,rowkey是按照字典顺序排序存储的,因此,设计rowkey的时候,要充分利用这个排序的特点,将经常读取的数据存储到一块,将最近可能会被访问的数据放到一块。2、rowkey长度原则rowkey是一个二进制码流,可以是任意字符串,最大长度64kb,实......
  • [ 应急响应进阶篇-1 ] Windows 创建后门并进行应急处置(后门账户\计划任务后门\服务
    ......
  • Rust项目大制作,从简单到进阶,助力大家成为Rust顶流开发工程师!
    在给大家介绍这个关于Rust的项目前,大家可以先看看我之前写的这两篇博客,巩固一下Rust的基础知识博客1:为什么不来学一下Rust!!!https://blog.csdn.net/speaking_me/article/details/143450484博客2:Rust的应用开发场景,抓住Rust的红利开吃!!!https://blog.csdn.net/speaking_me/art......
  • 【C++】深入理解 C++ 中的继承进阶:多继承、菱形继承及其解决方案
    个人主页:起名字真南的CSDN博客个人专栏:【数据结构初阶】......
  • SQL进阶技巧:如何进行数字范围统计?| 货场剩余货位的统计查询方法
    目录0场景描述1 剩余空位区间和剩余空位编号统计分析 2 查找已用货位区间3小结0场景描述这是在做一个大型货场租赁系统时遇到的问题,在计算货场剩余存储空间时,不仅仅需要知道哪些货位是空闲的,还要能够判断出哪些货位之间是连续的。因为在新货物入场时,可以判断这些......
  • Java教程:SE进阶【十万字详解】(中)
    ✨博客主页:https://blog.csdn.net/m0_63815035?type=blog......
  • ybtoj 高效进阶题解索引
    密码:sunxuhetai2009--------------------云落的分割线--------------------基础算法第1章-递推算法第2章-贪心算法--------------------云落的分割线--------------------图论第1章-并查集第4章-强连通分量--------------------云落的分割线--------------------......
  • python-day07-面向对象进阶
    isinstance和issubclassisinstance(obj,cls)检查是否obj是否是类cls的对象123456class Foo(object):     pass   obj = Foo()   isinstance(obj,Foo)issubclass(sub,super)检查sub类是否是super类的派生类 1234......
  • 小白如何进阶 Java 高级工程师
    一、小白进阶之路开启在当今数字化时代,Java作为一种广泛应用的编程语言,掌握它对于个人职业发展至关重要。从小白进阶为Java高级工程师不仅意味着薪资的提升,更是个人技术实力和职业价值的体现。然而,这条进阶之路充满挑战。首先,Java语言本身具有一定的复杂性。它涵盖了众......
  • Chrome DevTools Protocol 进阶:Console域
    前言在日常开发和调试过程中,浏览器控制台(Console)是开发者最常使用的工具之一。通过它,我们可以输出调试信息、错误提示、以及监控JavaScript代码的执行。ChromeDevToolsProtocol(CDP)通过Console域,允许我们以编程的方式来捕获和处理控制台中的日志输出,使我们能够进行更加自......