Когда я пытаюсь сделать пакетное приращение на Hbase таблицы (без RowKey дублей)Batch Increment в Hbase
final List<Increment> increments = countPerUid.entrySet().stream()
.map(entry -> {
Increment increment = new Increment(toBytes(entry.getKey()));
increment.addColumn(toBytes(conf.parentColumnFamily()), toBytes(conf.parentRankQualifier()), entry.getValue());
return increment;
}).collect(Collectors.toList());
public BatchOperationResult batchIncrement(HTable table, List<Increment> rows) {
Object[] results = new Object[rows.size()];
try {
table.batch(rows, results);
} catch (IOException | InterruptedException e) {
Throwables.propagate(e);
}
return new BatchOperationResult(results);
}
У меня такое исключение:
2015-05-13 09:53:43,674 [Thread-9] ERROR hbase_query_layer.service.HbaseLayerServiceHandlerImpl - java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException:
Failed 14896 actions: org.apache.hadoop.hbase.exceptions.OperationConflictException: The operation with nonce {-3517837563370374612, -1595005354043534544} on row [298270339298463040] may have already completed
Кто знает, почему?/
У меня Hbase 0.98.0
Значение, которое вы пытаетесь увеличить, это Long? HBase поддерживает приращения только на длинные. – Azwaw
Я знаю. Это долго. –
Можете ли вы проверить, имеют ли какие-то операции те же самые nonce? – Azwaw