Hbase 优化

1.查询优化 

1.设置Scan缓存

设置查询缓存,定义一次交互从服务器端传输到客户端的行数,有效减少服务器端和客户端的交互(默认100行)

scanner.setCaching(1000)

2.在查询的时候显示指定列

在定义查询的时候,指定某列,或者几列,能有效的减少网络传输量,在一定程度上提升查询性能

scanner.addColumn(Bytes.toBytes(family),Bytes.toBytes(column))

3.禁用块缓存

scan扫描全表的时候会使用块缓存,Mapreduce读取全表的时候,需要将该值设置为false,默认是true,全表扫描,每条记录只会读取一次,使用块缓存会降低效率。

2 写入优化

1.关闭预写日志

风险,如果regionServer宕机,数据无法恢复。

put.setWruteToWAL(false)

2.设置AutoFlush

Htable有这个属性,该属性用于支持客户端的批量更新,默认是true,客户端每接受到一条数据,立即发送服务端,如果设置该属性为false,当客户端提交put请求的时候,将该请求在 客户端缓存,直到数据达到某个阈值的容量时(hbase.client.write.buffer)或者执行hbase.flushcommits()时,才向regionserver提交请求。

size=12*1024*1024

table.setAutoFlush(false)

table.setWiteBufferSize(size)

table.flushCommits

3.预创建Region

在hbase创建表时候,默认只有一个region,插入该表的数据会保存在该region中,为了解决问题,可以预习region,有两种方法

第一种使用regionsPlitter

hbase org.apache.hadoop.hbase.util.RegionSplitter test2 HexStringSplit -c 10 -f cf1

HexStringSplit 划分的算法 -c 10 预创建10个分区 -f cf1 创建一个名字为 cf1的列族

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值