原來,webui沒有顯示默認值。
如果我使用HBase的殼,我看到(按摩輸出位爲清楚起見,在這裏):
hbase(main)> describe 'test_foo'
{NAME => 'test_foo', FAMILIES => [{NAME => 'fam',
BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '0', VERSIONS => '3',
COMPRESSION => 'NONE', MIN_VERSIONS => '0',
TTL => '2147483647',
BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}]}
hbase(main)> describe 'test_bar'
{NAME => 'test_bar', FAMILIES => [{NAME => 'fam',
BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '0', VERSIONS => '3',
COMPRESSION => 'NONE', MIN_VERSIONS => '0',
TTL => '1000',
BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}]}
所以在這32位簽署了test_foo
表中的TTL以及爲2147483647秒(最大值int,大致對應於68年),可能是HBase的默認TTL。
我將test_bar
表上的TTL設置爲該maxint,例如,如下所示:
alter 'test_bar', {NAME => 'fam', TTL => '2147483647'}
結果:TTL屬性不再顯示在webui中。 #pieceofmind
TTL =>'2147483647'這確實是默認值。它在源代碼中被定義爲一個常量。 –
hbase shell也接受更優雅 TTL => org.apache.hadoop.hbase.HConstants :: FOREVER – patrungel