Cassandra InvalidRequestException (почему: [MyKeyspace] [MyColumnFamily] [6675 ... 6c74] = [6c86 ...... e65720] не удалось проверить (строка не проверена.) - PullRequest
6 голосов
/ 10 августа 2011

Я использую Cassandra с Hadoop для ввода и вывода. Во время вывода вывода я получил ошибку:

2011-08-10 03:54:04,326 WARN org.apache.hadoop.mapred.Child: Error running child
java.io.IOException: InvalidRequestException(why:[MyKeyspace][MyColumnFamily][66756c6c74657874] = [6c696e6bb66e68656974207a756d.................65697465726520536f6e67746578746520] failed    validation (String didn't validate.))
at org.apache.cassandra.thrift.Cassandra$batch_mutate_result.read(Cassandra.java:19045)
at org.apache.cassandra.thrift.Cassandra$Client.recv_batch_mutate(Cassandra.java:1035)
at org.apache.cassandra.thrift.Cassandra$Client.batch_mutate(Cassandra.java:1009)
at   org.apache.cassandra.hadoop.ColumnFamilyRecordWriter$RangeClient.run(ColumnFamilyRecordWriter.java:285)
2011-08-10 03:54:04,339 INFO org.apache.hadoop.mapred.Task: Runnning cleanup for the task
2011-08-10 03:54:04,340 WARN org.apache.hadoop.io.UTF8: truncating long string: 267364 chars, starting with java.io.IOException:

Согласно журналу, это происходит не в начале, а после успешного слияния, сортировки и обработки 8981 ключей. 8982-го это не удалось.

искали в гугле и на stackoverflow, но ничего не нашли.

Семейство столбцов выглядит так:

create column family MyColumnFamily with comparator = UTF8Type and                                                                                        
key_validation_class=UTF8Type and 
column_metadata = 
[
{column_name: column1, validation_class: UTF8Type, index_type: 0},
{column_name: column2, validation_class: UTF8Type, index_type: 0},
{column_name: column3, validation_class: UTF8Type, index_type: 0}
];

Заранее спасибо!

1 Ответ

7 голосов
/ 12 августа 2011

Это означает, что одно из значений вашего столбца не было действительной строкой в ​​кодировке UTF8.Первая шестнадцатеричная строка в сообщении - это имя столбца в байтах, а вторая - байты, которые не удалось декодировать.

...