hbase快速入门之---参数调优

Ø 创建自定义的预分区
默认情况下,在创建 HBase 表的时候会自动创建一个 region 分区,当导入数据的时候,所有的 HBase 客户端都向这一个 region 写数据,直到这个 region 足够大了才进行切分。一种可以加快批量写入速度的方法是通过预先创建一些空的 regions ,这样当数据写入 HBase 时,会按照 region 分区情况,在集群内做数据的负载均衡。

Ø 增加 Regionserver 的处理线程
hbase.regionserver.handler.count RegionServer 端开启的 RPC 监听器实例个数,也即 RegionServer 能够处理的 IO 请求线程数。默认是 10.
  此参数与内存息息相关。该值设置的时候,以监控内存为主要参考。
  对于 单次请求内存消耗较高的 Big PUT 场景(大容量单次 PUT 或设置了较大 cache scan ,均属于 Big PUT )或 ReigonServer 的内存比较紧张的场景,可以设置的相对较小。
  对于 单次请求内存消耗低, TPS TransactionPerSecond ,每秒事务处理量)要求非常高的场景,可以设置的相对大些。

Ø 使用 noatime nodiratime 挂载磁盘
如果你以 noatime 挂载磁盘,访问时间戳不会更新,当一个文件在文件系统中被读的时候。在这个 nodiratime 属性情况中,挂载磁盘不会更新文件系统中目录的 inode 访问时间。因为它们没有更多的磁盘 I/O 更新访问时间戳,这提升了文件系统的访问速度。

Ø vm.swappiness 设置成 0 来避免 swap
Linux 移动那些一段时间没有被访问的内存页到 swap 空间,即使它由足够可用的内存。这叫做 swap out。 换一句话说,从 swap 空间读 swapped out 的数据到内存中叫做 swap 。如果 HBase 使用的内存被 swapped 了, HBase 运行可能会遇到问题,如会增加 GC 时间等。

ØJava GC HBase 堆设置
因为 HBase 运行在 JVM,JVM 的  Garbage Collection(GC)  设置对于 HBase 流畅的运行,更高的性能是非常重要的。建议 HBase 的最大堆内存不要超过 16 GB ,并将垃圾回收机制设置为 CMS
同时 HBase 进程输出到它们的 GC 日志中是同样重要的,可以根据 GC 日志来定位问题,或调整 JVM 设置。
另外可以设置 hbase.hregion.memstore.mslab.enabled true ,来预防老年代堆碎片,减少因内存碎片导致的 Full GC ,提高整体性能

Ø 增加 HBase 用户的 File handles process limits
操作系统默认的 nofile nproc 对于 HBase 来说偏小,在高并发的情况下会使用 HBase 出现问题。建议增大 nofile nproc 设置。

Ø 增加 DATANODE 处理线程数
HBase Datanode 做为底层的存储,可能会同时打开较多的 hdfs 文件,因些需要增大默认的 dfs.datanode.max.transfer.threads 参数。
Øhbase.hregion.max.filesize
在当前 ReigonServer 上单个 Reigon 的最大存储空间,单个 Region 超过该值时,这个 Region 会被自动 split 成更小的 region 。对于 0.90.x 版本该参数的最大值为 4GB ,之后的版本最大值 可以达到 20GB 5 10GB 是最优的。

Ø 增大 zookeeper maxClientCnxns
默认 zookeeper 给每个客户端 IP 使用的连接数为 10 个,可能会出现连接不够用的情况。可以增大 maxClientCnxns 参数。

Ø 增大 hbase.hstore.blockingStoreFiles
flush 时,当一个 region 中的 Store(Coulmn Family) 内有超过 7 storefile 时,则 block 所有的写请求进行 compaction, 以减少 storefile 数量。可以增加为 20

Øhfile.block.cache.size
storefile 的读缓存占用 Heap 的大小百分比, 0.2 表示 20% 。该值直接影响数据读的性能。如果写比读少很多,可以开到 0.4-0.5 。如果读写较均衡, 0.3 左右。如果写比读多,可以使用默认值。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值