5

我在使用 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 在独立模式下运行。

提前感谢您的帮助!

4

1 回答 1

8

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

如果确实如此,您可以简单地删除旧版本。然后将显示此条目。

于 2012-05-31T11:56:47.680 回答