ZZ HBase解惑

最近经常对自己提一些问题,然后自己通过google、读代码、测试寻求答案来解决疑惑,可能这些问题也能给其他人带来一些帮助。

quora是个不错的问答型网站,兴趣去看一下自己感兴趣的话题吧~

1)HBase中的TTL参数什么意思?
TTL == "Time To Live".  You can specify how long a cell lives in hbase. 
Onces its "TTL" has expired, its removed.
2)影响read性能的配置参数有哪些?
hbase-env.xml: 
export HBASE_HEAPSIZE=4000
hbase-default.xml:
hfile.block.cache.size
3)HBase在写操作的时候会更新LruBlockCache吗?
从代码上看写的时候不会更新lruBlockCache!
4)如何将一个HBase CF指定为IN_MEMORY?
创建table的时候可以指定CF的属性,create 'taobao', {NAME => 'edp', IN_MEMORY => true}
5)HBase cache每次load的最小单位是block
6)如果每次load一个block到cache中,而以后不会再读取这个block,则这个block对block cache
hit ratio没有贡献啊,但是为什么block cache hit ratio有60%+呢?(这个我当初的错误理解,漏
洞还是很多的)
注意block cache hit ratio的最小计量单位应该是record,cache的最小单位才是block, 因为block
下面有很多record,后面的record借助了读第一个record带来的cache福利,所以block cache hit ratio
才会有60%+


7)如果只有一行一个cf,写入很大量的数据会不会发生region split?

  1. <property>  
  2.   <name>hbase.hregion.max.filesize</name>  
  3.   <value>67108864</value>  
  4.   <description>  
  5.   Maximum HStoreFile size. If any one of a column families' HStoreFiles has  
  6.   grown to exceed this value, the hosting HRegion is split in two.  
  7.   Default: 256M.  
  8.   </description>  
  9. </property>  

测试: 将参数hbase.hregion.max.filesize设置成64M以后,然后create table的时候只创建一个CF,测试的时候只往一个row + CF 下面塞入数据,数据量大概在80M左右,在web上显示的数目是107M,但是没有发生region split。这说明region split最小单位应该是row key级别,因为这里只有一个row,即使数据量已经上去了,但是还是没有发生region split.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值