v = data.getValues(XP_PHONE);
for (int i = 0; i < v.length; i++) {
put.add(COLFAM, COL_PHONE, i, Bytes.toBytes(v[i].trim()));
}
这是我使用的代码,电话号码应该是8或者更多,但是在提交了put之后,我只能在hbase shell中查看最新的3版本结果。为什么?以及如何解决它?
答案 0 :(得分:6)
创建表时,设置可存储的最大版本数。最大版本的默认值为3:
http://hbase.apache.org/book/schema.versions.html
您可以更改现有表格以更改最大版本数。
使用hshell:
hbase> alter 'table_foo', {NAME => 'column_fam_foo', VERSIONS => 100}
答案 1 :(得分:0)
你必须使用
public Get setMaxVersions(int maxVersions)
获得更多版本或使用
setTimeStamp(long timestamp)
设置您想要的版本
答案 2 :(得分:0)
如果您向列中插入10次相同的值并请求完全点亮所有保留的值,则默认情况下您只会收到最后3个版本。这意味着您只会收到表架构中配置的内容。
参考:Hbase权威指南