2011-06-02 2 views
1

Я использую свинью CassandraStroage(), чтобы вставить большие наборы данных в Кассандре, после запуска 4 часа, он упал со следующим исключением:Cassandra вставки свинья исключение

java.lang.NullPointerException 
     at org.apache.cassandra.dht.RandomPartitioner.getToken(RandomPartitioner.java:134) 
     at org.apache.cassandra.dht.RandomPartitioner.getToken(RandomPartitioner.java:36) 
     at org.apache.cassandra.client.RingCache.getRange(RingCache.java:129) 
     at org.apache.cassandra.hadoop.ColumnFamilyRecordWriter.write(ColumnFamilyRecordWriter.java:127) 
     at org.apache.cassandra.hadoop.ColumnFamilyRecordWriter.write(ColumnFamilyRecordWriter.java:62) 
     at org.apache.cassandra.hadoop.pig.CassandraStorage.putNext(Unknown Source) 
     at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigOutputFormat$PigRecordWriter.write(PigOut 
putFormat.java:138) 
     at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigOutputFormat$PigRecordWriter.write(PigOut 
putFormat.java:97) 
     at org.apache.hadoop.mapred.MapTask$NewDirectOutputCollector.write(MapTask.java:498) 
     at org.apache.hadoop.mapreduce.TaskInputOutputContext.write(TaskInputOutputContext.java:80) 
     at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapOnly$Map.collect(PigMapOnly.java:48) 
     at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapBase.runPipeline(PigMapBase.java:239) 
     at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapBase.map(PigMapBase.java:232) 
     at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapBase.map(PigMapBase.java:53) 
     at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144) 
     at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:621) 
     at org.apache.hadoop.mapred.MapTask.run(MapTask.java:305) 
     at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:177) 

Любая идея, почему это произошло?

+0

Хорошо, я понял, что это связано с тем, что одна запись в моем наборе данных имеет нулевой ключ. –

ответ

0

Хотя это и не является причиной проблемы в вашем случае, стоит заметить, что эта ошибка может возникнуть при попытке вставить в семейство столбцов, где указанный ключ раздела не существует.

В этом случае он будет генерировать исключение при первом обращении к классу редуктора.