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?

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

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

你可能感兴趣的:(Web,cache,测试,Google,hbase,table)