Я загружаю исходные данные (список URL для сканера) в Cassandra со статусом crawled = 0.Затем, используя Hadoop, я сканирую все ссылки и пытаюсь изменить сканируемый объект с 0 на что-то другое, например, 1, 2 или 3. Когда я проверяю в Cassandra cli interface, получаем ColumnFamily ['www.somedomain.com'] значение crawler.столбец остается прежним.Если при первоначальном импорте я не упомянул просканированный столбец, он добавляется правильно.Это только одна часть алгоритма, и мне нужны дальнейшие обновления этого столбца с другими заданиями Map / Reduce и т. Д.
В API Thrift и Cassandra сказано, что у нас есть только вставки и удаления.Вставка должна работать как обновление.
Для просканированного столбца у меня тип 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;
}