hbase优化方向说明

如何对hbase用的好,怎么定义把hbase用的好?
在保证系统稳定性、可用性的基础上能够用最少的系统资源(CPU,IO等)获得最好的性能(吞吐量,读写延迟)就是’用的好’。
优化方向为:
(1)HDFS相关配置优化,(2)HBase服务器端优化(GC优化、Compaction优化、硬件配置优化),(3)列族设计优化,(4)客户端优化等,
其中第四点(4)客户端优化在前面已经通过超时机制、重试机制讲过,参考链接为:
HBase客户端Rpc的重试机制以及客户端参数优化。:https://blog.51cto.com/12445535/2373709
hbase 客户端超时机制参数优化实践:https://blog.51cto.com/12445535/2373731

(3)列族设计优化 总结
hbase列族设计 (在很大程度上决定了读写的性能) // 参考链接 HBase最佳实践-列族设计优化 http://hbasefly.com/2016/07/02/hbase-pracise-cfsetting/
hbase 创建表语句
create ‘NewsClickFeedback‘,{NAME=>‘Toutiao‘,VERSIONS=>1,BLOCKCACHE=>true,BLOOMFILTER=>‘ROW‘,COMPRESSION=>‘SNAPPY‘,TTL => ‘259200‘, DATA_BLOCK_ENCODING => ‘PREFIX_TREE‘, BLOCKSIZE => ‘65536‘},{SPLITS => [‘1‘,‘2‘,‘3‘,‘4‘,‘5‘,‘6‘,‘7‘,‘8‘,‘9‘,‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘]}
小结:
1、对于以随机读为主的业务,可以适当调低BlockSize的大小,以获得更好的读性能。默认为64K
2、对于以scan为主的业务,可以适当增大BlockSize的大小,以获得更好的读性能。
【提示:
1.可见,如果业务请求以Get请求为主,可以考虑将块大小设置较小;
2.如果以Scan请求为主,可以将块大小调大;默认的64K块大小是在Scan和Get之间取得的一个平衡。

3、数据编码/压缩Compress/DeCompress (压缩/解压缩)
Snappy:综合来看,Snappy的压缩率最低,但是编解码速率最高,对CPU的消耗也最小,目前一般建议使用Snappy。
4、Encode/Decode(数据编码功能)
推荐:DATA_BLOCK_ENCODING => ‘PREFIX_TREE‘ //这个配置鉴于安全考虑,prefix_tree功能建议不要设置上生产。

(2)hbase服务器端优化方向中gc优化 见:hbase gc系列博客
https://blog.51cto.com/12445535/category16.html

原文地址:https://blog.51cto.com/12445535/2374060

时间: 2024-10-08 17:28:59

hbase优化方向说明的相关文章

网易视频云:HBase优化实战

网易视频云是网易倾力打造的一款基于云计算的分布式多媒体处理集群和专业音视频技术,提供稳定流畅.低时延.高并发的视频直播.录制.存储.转码及点播等音视频的PAAS服务,在线教育.远程医疗.娱乐秀场.在线金融等各行业及企业用户只需经过简单的开发即可打造在线音视频平台.现在,网易视频云的技术专家给大家分享一则技术文:HBase优化实战. 背景 Datastream一直以来在使用HBase分流日志,每天的数据量很大,日均大概在80亿条,10TB的数据.对于像Datastream这种数据量巨大.对写入要求

唤醒亮屏速度优化方向

MT6753 在开了自动背光,唤醒亮屏速度不是很理想.客户提供了以下优化方向: 1.缩短初使化硬件的时间,优化autosuspend 和earlysuspend过程.2.调整lcd,tp,各种sensor的唤醒顺序.优先初始化光感和lcd. 先不去考虑具体器件IC上的延时因素,在MTK平台,若要按上面两点方向进行优化,平台这边具体code 如何修改? 若修改上面有此什么风险也请指出. 测试用例:adb logcat -v threadtime | grep -r "Excessive delay

oracle 性能优化方向

1调优设计 架构设计(RAC/单机).应用设计(模块设计.E-R模型设计) 2调优应用 代码调优.应用存储对象调优 3条用内存 数据高速缓存区.共享池.重做日志缓存区.大池 4.调优I/O RAID模式.文件系统与裸设备.存储缓存.表空间数据文件划分. 存储对象分布等 5.调优竞争 回滚段.Lock \Latch oracle 性能优化方向,布布扣,bubuko.com

存储性能优化方向整理

0概述 0.1 存储性能优化指标 io速率:速率提升数值和百分比 iops:iops提升数值和百分比 0.2 优化方向概述 块存储优化方向:优化的工作,基本上都是在底层,上层只是一些配置. 这些底层的技术适用于ceph块设备,主要是ceph还有自身的一些配置.缓存方案可以拿过来用,在最后补充一下. 底层包括qemu/kvm/kernel三个层面,kernel又主要是filesystem.scsi和block这部分和存储关系最大,也是存储系统由上而下的三部分.我认为如果优化的话,主要工作在这几个方

MapReduce Shuffle优化方向

Shuffle过程介绍可以查看该博客:http://langyu.iteye.com/blog/992916 优化方向: 压缩:对数据进行压缩,减少写读数据量: 减少不必要的排序:并不是所有类型的Reduce需要的数据都是需要排序的,排序这个nb的过程如果不需要最好还是不要的好: 内存化:Shuffle的数据不放在磁盘而是尽量放在内存中,除非逼不得已往磁盘上放:当然了如果有性能和内存相当的第三方存储系统,那放在第三方存储系统上也是很好的:这个是个大招: 网络框架:netty的性能据说要占优了:

MySQL优化方向&思路

硬件级别         操作系统和硬件级别的优化着眼点: 1.对于CPU密集型的应用场景要使用更快速度的CPU甚至更多数量的CPU,为有着更多查询的场景使用更多的CPU等.基于多核以及超线程(hyperthreading)技术,现代的CPU架构越来越复杂.性能也越来越强了,但MySQL对多CPU架构的并行计算能力的利用仍然是有着不太尽如人意之处,尤其是较老的版本如MySQL 5.1之前的版本甚至无法发挥多CPU的优势.不过,通常需要实现的CPU性能提升目标有两类:低迟延和高吞吐量.低延迟需要更

mysql优化方向

随着数据的积累,慢慢的我们一些不好的习惯都会在系统中暴露出来,程序执行的效率低,用户体验下降,如果我们不采取一些措施,那么用户就回流失.提高程序的执行效率可能需要做很多工作,但其中一个重要的工作就是mysql优化,或者称为数据库优化. 优化方向 1.表设计合理化(数据库范式)2.添加适当的索引(主键索引.唯一索引.普通索引.全文索引)3.高效的sql(sql语句优化,尤其是慢查询)4.分表技术(水平分割.垂直分割)5.读写分离6.存储过程(预编译的sql语句,提高了执行效率)7.配置优化 例如

Spark 读取 Hbase 优化 --手动划分 region 提高并行数

一. Hbase 的 region 我们先简单介绍下 Hbase 的 架构和 region : 从物理集群的角度看,Hbase 集群中,由一个 Hmaster 管理多个 HRegionServer,其中每个 HRegionServer 都对应一台物理机器,一台 HRegionServer 服务器上又可以有多个 Hregion(以下简称 region).要读取一个数据的时候,首先要先找到存放这个数据的 region.而 Spark 在读取 Hbase 的时候,读取的 Rdd 会根据 Hbase 的

Hbase­优化方案

1.预分区设计 真正存储数据的是region要维护一个区间段的rowkey startRow~endRowkey ->手动设置预分区 create 'user_p','info','partition',SPLITS => ['101','102','103','104'] 存在-∞ +∞ 第一个分区 -∞ ~ 101 第二个分区 101~102 第三个分区 102~103 第四个分区 103~104 第五个分区 104 ~ +∞ ->生成16进制序列预分区 create 'user_p