假设我有这些HBase表,它们在HBase webui中描述为:
test_foo {NAME => 'test_foo', FAMILIES => [{NAME => 'fam'}]}
test_bar {NAME => 'test_bar', FAMILIES => [{NAME => 'fam', TTL => '1000'}]}
如何取消设置test_bar
表上的TTL?
答案 0 :(得分:5)
原来,webui没有显示默认值。
如果我使用hbase shell,我会看到(为了清楚起见,按摩输出一点):
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'}]}
因此test_foo
表上有一个TTL以及2147483647秒(32bit signed int的最大值,相当于大约68年),可能是HBase的默认TTL。
我将test_bar
表格上的TTL设置为此maxint,例如如下:
alter 'test_bar', {NAME => 'fam', TTL => '2147483647'}
结果:不再在webui中显示TTL属性。 #pieceofmind