最近經(jīng)常對(duì)自己提一些問題,然后自己通過google、讀代碼、測(cè)試尋求答案來解決疑惑,可能這些問題也能給其他人帶來一些幫助。
quora是個(gè)不錯(cuò)的問答型網(wǎng)站,興趣去看一下自己感興趣的話題吧~
1)HBase中的TTL參數(shù)什么意思?
TTL == "Time To Live". You can specify how long a cell lives in hbase.
Onces its "TTL" has expired, its removed.
TTL == "Time To Live". You can specify how long a cell lives in hbase.
Onces its "TTL" has expired, its removed.
2)影響read性能的配置參數(shù)有哪些?
hbase-env.xml:
export HBASE_HEAPSIZE=4000
export HBASE_HEAPSIZE=4000
hbase-default.xml:
hfile.block.cache.size
hfile.block.cache.size
3)HBase在寫操作的時(shí)候會(huì)更新LruBlockCache嗎?
從代碼上看寫的時(shí)候不會(huì)更新lruBlockCache!
4)如何將一個(gè)HBase CF指定為IN_MEMORY?
創(chuàng)建table的時(shí)候可以指定CF的屬性,create 'taobao', {NAME => 'edp', IN_MEMORY => true}
創(chuàng)建table的時(shí)候可以指定CF的屬性,create 'taobao', {NAME => 'edp', IN_MEMORY => true}
5)HBase cache每次load的最小單位是block
6)如果每次load一個(gè)block到cache中,而以后不會(huì)再讀取這個(gè)block,則這個(gè)block對(duì)block cache
hit ratio沒有貢獻(xiàn)啊,但是為什么block cache hit ratio有60%+呢?(這個(gè)我當(dāng)初的錯(cuò)誤理解,漏
洞還是很多的)
hit ratio沒有貢獻(xiàn)啊,但是為什么block cache hit ratio有60%+呢?(這個(gè)我當(dāng)初的錯(cuò)誤理解,漏
洞還是很多的)
注意block cache hit ratio的最小計(jì)量單位應(yīng)該是record,cache的最小單位才是block, 因?yàn)閎lock
下面有很多record,后面的record借助了讀第一個(gè)record帶來的cache福利,所以block cache hit ratio
才會(huì)有60%+
下面有很多record,后面的record借助了讀第一個(gè)record帶來的cache福利,所以block cache hit ratio
才會(huì)有60%+
7)如果只有一行一個(gè)cf,寫入很大量的數(shù)據(jù)會(huì)不會(huì)發(fā)生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>
測(cè)試: 將參數(shù)hbase.hregion.max.filesize設(shè)置成64M以后,然后create table的時(shí)候只創(chuàng)建一個(gè)CF,測(cè)試的時(shí)候只往一個(gè)row + CF 下面塞入數(shù)據(jù),數(shù)據(jù)量大概在80M左右,在web上顯示的數(shù)目是107M,但是沒有發(fā)生region split。這說明region split最小單位應(yīng)該是row key級(jí)別,因?yàn)檫@里只有一個(gè)row,即使數(shù)據(jù)量已經(jīng)上去了,但是還是沒有發(fā)生region split.