hadoop - 即使最大版本= 1,HBase get也会返回旧值

标签 hadoop hbase

我希望找到在特定时间段内未更新的列。

因此,我想对具有时间范围的列进行扫描。
HBase的正常行为是,您随后会在该时间范围内获得最新值(这不是我想要的值)。

据我了解,HBase的工作方式是,如果将列族中的值的最大版本数设置为“1”,则它应仅保留输入到单元格中的最后一个值。

我发现是不同的。

如果我在hbase shell中执行以下命令

create 't1', {NAME => 'c1', VERSIONS => 1}
put 't1', 'r1', 'c1', 'One', 1000
put 't1', 'r1', 'c1', 'Two', 2000
put 't1', 'r1', 'c1', 'Three', 3000
get 't1', 'r1'
get 't1', 'r1' , {TIMERANGE => [0,1500]}

结果是这样的:
get 't1', 'r1'
COLUMN                     CELL
 c1:                       timestamp=3000, value=Three
1 row(s) in 0.0780 seconds

get 't1', 'r1' , {TIMERANGE => [0,1500]}
COLUMN                     CELL
 c1:                       timestamp=1000, value=One
1 row(s) in 0.1390 seconds

即使将最大版本设置为仅1,第二个查询为什么也返回一个值?

我当前在此处安装的HBase版本是HBase 0.94.6-cdh4.4.0

最佳答案

事实证明这是hbase中的错误。
https://issues.apache.org/jira/browse/HBASE-10102

关于hadoop - 即使最大版本= 1,HBase get也会返回旧值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20425707/

相关文章:

hadoop - 实例化 HiveSessionState 时的 Spark2 数据加载问题

hadoop - 从 PIG 中的一个元组生成一组元组

java - 如何扫描和删除HBase中的数百万行

java - Spark - 在执行期间更改并行度

sql-server - 将 SQL Server 表导入 HDFS

java - 在 Hadoop 中设置可写?

azure - Pig 无法在 HDFS 中创建(或查找)pigjobs 文件 (riskfactor.pig)

hadoop - 我的hadoop群集,不同的主机使用不同的用户,如何配置从属服务器?

java - SPARK 转 HBase 写入

apache-spark - 如何使用 spark-shell 添加 hbase-site.xml 配置文件