1

MapReduce プログラムを使用して cassandra にレコードを挿入しようとすると、reduce ジョブから以下のエラーが発生します。

13/03/29 07:39:34 INFO mapred.JobClient: Task Id : attempt_201303281807_0009_r_000000_0, Status : FAILED
java.io.IOException: InvalidRequestException(why:TimeUUID should be 16 or 0 bytes (3))
    at org.apache.cassandra.hadoop.ColumnFamilyRecordWriter$RangeClient.run(ColumnFamilyRecordWriter.java:309)
Caused by: InvalidRequestException(why:TimeUUID should be 16 or 0 bytes (3))
    at org.apache.cassandra.thrift.Cassandra$batch_mutate_result.read(Cassandra.java:20350)
    at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:78)
    at org.apache.cassandra.thrift.Cassandra$Client.recv_batch_mutate(Cassandra.java:926)
    at org.apache.cassandra.thrift.Cassandra$Client.batch_mutate(Cassandra.java:912)
    at org.apache.cassandra.hadoop.ColumnFamilyRecordWriter$RangeClient.run(ColumnFamilyRecordWriter.java:301

slicePredicate 定義は

SlicePredicate predicate = new SlicePredicate().setSlice_range(new SliceRange(ByteBuffer.wrap(new byte[16]), ByteBuffer.wrap(new byte[16]), false, 150));
        ConfigHelper.setInputSlicePredicate(conf, predicate);

使用せずに sliceRange を設定するために、他のいくつかの API を試しました。例: その他の API: https://code.google.com/p/skltpservices/source/browse/Components/log-analyzer/trunk/src/main/java/se/skl/skltpservices/components/analyzer/domain/TimeUUID。 java?spec=svn1939&r=1939

列ファミリーの定義は次のとおりです。

create column family myColumnFamily
  with column_type = 'Standard'
  and comparator = 'TimeUUIDType'
  and default_validation_class = 'UTF8Type'
  and key_validation_class = 'UTF8Type'
  and read_repair_chance = 0.1
  and dclocal_read_repair_chance = 0.0
  and gc_grace = 864000
  and min_compaction_threshold = 4
  and max_compaction_threshold = 32
  and replicate_on_write = true
  and compaction_strategy = 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'
  and caching = 'KEYS_ONLY'
  and compression_options = {'sstable_compression' : 'org.apache.cassandra.io.compress.SnappyCompressor'};

列ファミリーで TimeUUIDType コンパレーターを使用し、Mapreduce を使用して挿入する際の助けを感謝します。

4

0 に答える 0