Crawled = 0の状態のCassandraに初期データ(クローラのURLリスト)をロードしています。その後、Hadoopを使用してすべてのリンクをクロールし、0から何か他のもの、たとえば1または2、または3に変更しようとします.Cassandra cliインターフェイスをチェックインすると、ColumnFamily ['www.somedomain.com']の値がクローラ列は同じままです。最初のインポート中にクロールされた列について言及していない場合は、正しく追加されます。これはアルゴリズムの一部に過ぎず、他のMap/Reduceジョブなどでこの列をさらに更新する必要があります。なぜ突然変異は既存の列に挿入を行いません
ThriftとCassandra APIでは、挿入と削除のみがあると言われています。 Insertはアップデートとして機能するはずです。
クロールされた列については、私はUTF8タイプを持っています。
変異クラスは、このようなものです:
private static Mutation getMutationCrawled(Text crawledVal)
{
Text column = new Text();
column.set("crawled");
Column c = new Column();
c.setName(ByteBuffer.wrap(Arrays.copyOf(column.getBytes(), column.getLength())));
c.setValue(ByteBuffer.wrap(crawledVal.getBytes()));
c.setTimestamp(System.currentTimeMillis());
Mutation m = new Mutation();
m.setColumn_or_supercolumn(new ColumnOrSuperColumn());
m.column_or_supercolumn.setColumn(c);
return m;
}
ありがとうございます!問題はまさにこのようでした – Anton