5

JavaAPIを使用して行のタイムスタンプを設定する際に問題が発生します。

putコンストラクター(または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;
    }
}

スタンドアロンモードで実行されているHBase0.92.1。

助けてくれてありがとう!

4

1 に答える 1

8

ほとんどの場合、タイムスタンプが > の行がテーブルに既に存在します12345678l。これが当てはまらないことを確認するには、timestamp の値を非常に大きくしてみてくださいLong.MAX_VALUE

その場合は、古いバージョンを削除するだけです。すると、このエントリが表示されます。

于 2012-05-31T11:56:47.680 に答える