mysql hbase性能优化_HBase数据库性能调优

58e8d81c4a0d115f2a9f9f245fa77d87.png

由于SQL Server 2005 Compact Edition和SQL Server 2005是同时代的产品,所以它们之间的互操作和结合性较之以前的SQL Server版本要好,为此如果要考虑使用SQL Server 2005 Compact Edition中的合并复制和远程数据访问技术进行数据同步的话,最...

HBase数据库性能调优,因官方Book Performance Tuning部分章节 没有按配置项进行索引,不能达到快速查阅的效果。所以我以配置项驱

因官方Book Performance Tuning部分章节 没有按配置项进行索引,不能达到快速查阅的效果。所以我以配置项驱动,重新整理了原文,并补充一些自己的理解,如有错误,欢迎指正。

配置优化

zookeeper.session.timeout

默认值:3分钟(180000ms)

说明:RegionServer与Zookeeper间的连接超时时间。当超时时间到后,ReigonServer会被Zookeeper从RS集群清单中移除,HMaster收到移除通知后,会对这台server负责的regions重新balance,让其他存活的RegionServer接管.

调优:

这个timeout决定了RegionServer是否能够及时的failover。设置成1分钟或更低,可以减少因等待超时而被延长的failover时间。

不过需要注意的是,对于一些Online应用,RegionServer从宕机到恢复时间本身就很短的(网络闪断,crash等故障,运维可快速介入),,如果调低timeout时间,反而会得不偿失。因为当ReigonServer被正式从RS集群中移除时,HMaster就开始做balance了 (让其他RS根据故障机器记录的WAL日志进行恢复)。当故障的RS在人工介入恢复后,这个balance动作是毫无意义的,反而会使负载不均匀,给RS 带来更多负担。特别是那些固定分配regions的场景。

hbase.regionserver.handler.count

默认值:10

说明:RegionServer的请求处理IO线程数。

调优:

这个参数的调优与内存息息相关。

较少的IO线程,适用于处理单次请求内存消耗较高的Big PUT场景(大容量单次PUT或设置了较大cache的scan,均属于Big PUT)或ReigonServer的内存比较紧张的场景。 【Linux公社 】

较多的IO线程,适用于单次请求内存消耗低,TPS要求非常高的场景。设置该值的时候,以监控内存为主要参考。

这里需要注意的是如果server的region数量很少,大量的请求都落在一个region上,因快速充满memstore触发flush导致的读写锁会影响全局TPS,不是IO线程数越高越好。

压测时,开启Enabling RPC-level logging ,可以同时监控每次请求的内存消耗和GC的状况,最后通过多次压测结果来合理调节IO线程数。

这里是一个案例 Hadoop and HBase Optimization for Read Intensive Search Applications ,作者在SSD的机器上设置IO线程数为100,仅供参考。

hbase.hregion.max.filesize

默认值:256M

说明:在当前ReigonServer上单个Reigon的最大存储空间,单个Region超过该值时,这个Region会被自动split成更小的region。

调优:

小region对split和compaction友好,因为拆分region或compact小region里的storefile速度很快,内存占用低。缺点是split和compaction会很频繁。

特别是数量较多的小region不停地split, compaction,会导致集群响应时间波动很大,region数量太多不仅给管理上带来麻烦,甚至会引发一些Hbase的bug。

一般512以下的都算小region。

大region,则不太适合经常split和compaction,因为做一次compact和split会产生较长时间的停顿,对应用的读写性能冲击非常大。此外,大region意味着较大的storefile,compaction时对内存也是一个挑战。

当然,大region也有其用武之地。如果你的应用场景中,某个时间点的访问量较低,那么在此时做compact和split,既能顺利完成split和compaction,又能保证绝大多数时间平稳的读写性能。

既然split和compaction如此影响性能,有没有办法去掉?

compaction是无法避免的,split倒是可以从自动调整为手动。

只要通过将这个参数值调大到某个很难达到的值,比如100G,就可以间接禁用自动split(RegionServer不会对未到达100G的region做split)。

再配合RegionSplitter这个工具,在需要split时,手动split。

手动split在灵活性和稳定性上比起自动split要高很多,相反,管理成本增加不多,比较推荐online实时系统使用。

内存方面,小region在设置memstore的大小值上比较灵活,大region则过大过小都不行,过大会导致flush时app的IO wait增高,过小则因store file过多影响读性能。

由于SQL Server 2005 Compact Edition和SQL Server 2005是同时代的产品,所以它们之间的互操作和结合性较之以前的SQL Server版本要好,为此如果要考虑使用SQL Server 2005 Compact Edition中的合并复制和远程数据访问技术进行数据

Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 是 Microsoft SQL Server 2005 Mobile Edition (SQL Server Mobile) 的下一版本。SQL Server

如果 Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 应用程序需要在 Microsoft SQL Server 数据库和 SQL Server Compact Edition 数据库之间交换数据,则您必须安

...要的为大家讲述的就是html dir标签的定义和html dir标签的compact属性的介绍,

compact()函数是PHP中的内置函数,它用于使用变量创建数组。此函数与extract()函数相反。它创建一个关联数组,其键是变量名,其对应的值是数组值。语法:array compact("variable 1", "variable 2"...)

...动split成更小的region。

调优:

小region对split和compaction友好,因为拆分region或compact小region里的storefile速度很快,内存占用低。缺点是split和compaction会很频繁。

特别是数量较多的小region不停地split, c

SQL Server 2005 Compact Edition(本文以后均将SQL Server 2005 Compact Edition缩写为SQL Server CE)是微软推出的一个适用于嵌入到移动应用的精简数据库产品,Windows Mobile开发人员能够使用SQL Server CE开发

...:函数理解什么是可变参数函数, ...$var, PHP5.6新特性介绍compact函数的用法 PHP: compact - Manuallist函数的用法 PHP: list - ManualPHP魔术方法开始之前本期说的是SQL中的查询语句, 由于复杂程度和多个类之间的关联性不是Conn

系列文章导航: 如何将数据导入到 SQL Server Compact Edition 数据库中(一) 如何将数据导入到 SQL Server Compact Edition 数据库中(二) 如何将数据导入到 SQL Server Compact Edition 数据库中(三) 摘要:在本系列文章的

...的store file合并成相对较大的store file,这个过程就称之为compaction。在hbase中,主要存在两种类型的compaction:minor? compaction和maj

????????? hbase为了防止小文件(被刷到磁盘的men

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值