首页 > 其他分享 >HBase性能调优

HBase性能调优

时间:2022-08-24 23:11:12浏览次数:86  
标签:压缩 性能 rowkey 调优 VEHICLE HBase 分区 Block

(1)创建表预分区(必须的)

针对原始数据实时ETL落地hbase,设置好预分区,解决数据热点问题,当已知rowkey的值的时候,设置预分区可以根据rowkey的区间进行分区。

# 创建预分区语法

create 'VEHICLE_NS:VEHICLE_SPLIT','INFO', {SPLITS => ['40000','70000']}

# rowkey所在的范围

分区1:startKey 为空,endKey为10000

分区2:startKey 10000,endKey为70000

分区3:startKey 70000,endKey为空

# 正常情况下,创建表预分区个数不少3个,一定时在创建表的时候指定,并不是表创建以后。

 

(2)表数据压缩

HBase数据库,底层数据存储在HFile文件中,放置在HDFS文件系统上,可以对其设置数据压缩,比如gzip、snappy或lz4等,减少磁盘存储空间。

预分区字段要符合rowkey前缀匹配

• 查看系统支持压缩格式

hbase org.apache.hadoop.util.NativeLibraryChecker

# 创建表示指定压缩格式

create 'vehicle_src_gz',{NAME => 'info', COMPRESSION => 'gz'}

• 不同压缩方式对比

同等数据98192 row(s),虚拟机服务环境压缩率顺序为

    gz > snappy > lz4

压缩率对比,还应该看压数据总量,压缩速度和解压速度,也就是压缩和解压消耗的时间

数据量更大的情况下,可能snappy压缩率更高,按实际情况测试选择压缩算法

 

(3)数据块Block编码

当从HBase表读取数据时,先读MemStore,然后再读BlockCache的。那么Block越小,能放到BlockCache中的数据就越多,命中率就越高,对Scan就越友好。

Block Encoding:通过某种算法,对Data Block中的数据进行压缩,Block Size小,放到Block Cache中就多。

create 'VEHICLE_NS:VEHICLE_SRC_BLOCK', { NAME => 'INFO', DATA_BLOCK_ENCODING => 'FAST_DIFF'}

标签:压缩,性能,rowkey,调优,VEHICLE,HBase,分区,Block
From: https://www.cnblogs.com/xiaotian278/p/16622614.html

相关文章

  • 这次我设计了一款TPS百万级别的分布式、高性能、可扩展的RPC框架
    作者:冰河博客地址:https://binghe001.github.io大家好,我是冰河~~没错,这次冰河又要搞事情了,这次准备下手的是RPC框架项目。为什么要对RPC框架项目下手呢,因为在如今分布式......
  • (九)数据库调优
    优化表设计表结构要尽量遵循第三范式的原则,让数据结构更加清晰规范,减少冗余字段,同时也减少了在更新,插入和删除数据时等异常情况的发生。反范式原则。如果分析查询应用......
  • oracle数据库性能监控常用sql
    因执行时间较长建议使用plsql等第三方工具执行--1.监控sga内存分配信息select*fromv$sgainfo;--2.监控每个用户的磁盘io及io命中率selectv$sess_io.*,(block_gets+con......
  • 性能调优
         外部代码由代码执行的系统和框架函数称为“外部代码”。外部代码函数启动和停止应用、绘制UI、控制线程以及向应用提供其他低级别服务。在大多数情况下......
  • Java工具篇之Disruptor高性能队列
    简介: disruptor适用于多个线程之间的消息队列,`作用与ArrayBlockingQueue有相似之处`,但是disruptor从功能、性能都远好于ArrayBlockingQueue,当多个线程之间传递大量数据或......
  • 在 C# 中使用 Span<T> 和 Memory<T> 编写高性能代码
    在C#中使用Span<T>和Memory<T>编写高性能代码  目录在C#中使用Span 和Memory 编写高性能代码.NET中支持的内存类型.NETCore2.1中新增的类型......
  • 服务器性能参数学习与总结
    服务器性能参数学习与总结总体说明在不考虑奸商和回扣的的情况下:同时间段购买的机器,价钱越高,配置越高,机器的性能越好.其实服务器与PC机器一样,高性能往往意味着......
  • MySQL 5.7 vs 8.0版本的性能有什么区别
    1、新增持久化设置MySQL8.0新增SETPERSIST的命令,该命令的配置值保存到数据目录下的mysqld-auto.cnf文件中,待重启后,读取该文件,用其中的配置覆盖缺省的配置文件,补充了SE......
  • storm性能优化小记
     1、默认情况下:1个supervisor节点启动4个worker进程。每一个topology默认占用一个worker进程。每个worker会启动executor。每个executor默认启动一个task。 2、并......
  • 性能指标
    Java架构师之路-不积小流,无以成江海。Idea插件集合下载官网工欲善其事必先利其器MyBatisCodeHelperPro可以在Mapper接口的方法和xml实现之间自由跳转等......