HBase设置时间戳

时间:2012-05-31 09:31:46

标签: java api hadoop hbase

我在使用java api设置行时间戳时遇到问题。

当我尝试添加时间戳值以将构造函数(或put.add())添加时,没有任何反应,在从表中读取行后,我得到系统提供的时间戳。

public static boolean addRecord(String tableName, String rowKey,
    String family, String qualifier, Object value)
{
    try {
        HTable table = new HTable(conf, tableName);
        Put put = new Put(Bytes.toBytes(rowKey), 12345678l);
        put.add(Bytes.toBytes(family), Bytes.toBytes(qualifier), Bytes.toBytes(value.toString()));
        table.put(put);
        return true;
    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }
}

HBase 0.92.1在独立模式下运行。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:8)

最有可能的是,表格中的行已经有时间戳> 12345678l。要确认不是这种情况,请尝试使用非常大的时间戳值,例如Long.MAX_VALUE

如果确实如此,您只需删除旧版本即可。然后此条目将显示。