最近經(jīng)常對自己提一些問題,然后自己通過google、讀代碼、測試尋求答案來解決疑惑,可能這些問題也能給其他人帶來一些幫助。
quora是個不錯的問答型網(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在寫操作的時候會更新LruBlockCache嗎?
從代碼上看寫的時候不會更新lruBlockCache!
4)如何將一個HBase CF指定為IN_MEMORY?
創(chuàng)建table的時候可以指定CF的屬性,create 'taobao', {NAME => 'edp', IN_MEMORY => true}
創(chuàng)建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%+呢?(這個我當初的錯誤理解,漏
洞還是很多的)
hit ratio沒有貢獻啊,但是為什么block cache hit ratio有60%+呢?(這個我當初的錯誤理解,漏
洞還是很多的)
注意block cache hit ratio的最小計量單位應該是record,cache的最小單位才是block, 因為block
下面有很多record,后面的record借助了讀第一個record帶來的cache福利,所以block cache hit ratio
才會有60%+
下面有很多record,后面的record借助了讀第一個record帶來的cache福利,所以block cache hit ratio
才會有60%+
7)如果只有一行一個cf,寫入很大量的數(shù)據(jù)會不會發(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>
測試: 將參數(shù)hbase.hregion.max.filesize設置成64M以后,然后create table的時候只創(chuàng)建一個CF,測試的時候只往一個row + CF 下面塞入數(shù)據(jù),數(shù)據(jù)量大概在80M左右,在web上顯示的數(shù)目是107M,但是沒有發(fā)生region split。這說明region split最小單位應該是row key級別,因為這里只有一個row,即使數(shù)據(jù)量已經(jīng)上去了,但是還是沒有發(fā)生region split.