2014-12-12 5 views
1

Может ли кто-нибудь помочь мне в решении проблемы, стоящей перед Cassandra, когда я запускаю свое приложение на Hadoop.Невозможно найти класс разделителя - Cassandra

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

Caused by: java.lang.RuntimeException: org.apache.cassandra.exceptions.ConfigurationException: Unable to find partitioner class 'org.apache.cassandra.dht.RandomPartitioner' 
     at org.apache.cassandra.hadoop.ConfigHelper.getInputPartitioner(ConfigHelper.java:426) 
     at org.apache.cassandra.hadoop.AbstractColumnFamilyInputFormat.validateConfiguration(AbstractColumnFamilyInputFormat.java:85) 
     at org.apache.cassandra.hadoop.ColumnFamilyInputFormat.validateConfiguration(ColumnFamilyInputFormat.java:74) 
     at org.apache.cassandra.hadoop.AbstractColumnFamilyInputFormat.getSplits(AbstractColumnFamilyInputFormat.java:122) 
     at org.apache.hadoop.mapreduce.JobSubmitter.writeNewSplits(JobSubmitter.java:493) 
     at org.apache.hadoop.mapreduce.JobSubmitter.writeSplits(JobSubmitter.java:510) 
     at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:394) 
     at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1295) 
     at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1292) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at javax.security.auth.Subject.doAs(Subject.java:415) 
     at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1554) 
     at org.apache.hadoop.mapreduce.Job.submit(Job.java:1292) 
     at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1313) 
     at com.test.cassandratest.WcJob.run(WcJob.java:96) 
     at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 
     at com.test.cassandratest.WcJob.main(WcJob.java:104) 
     ... 10 more 
Caused by: org.apache.cassandra.exceptions.ConfigurationException: Unable to find partitioner class 'org.apache.cassandra.dht.RandomPartitioner' 
     at org.apache.cassandra.utils.FBUtilities.classForName(FBUtilities.java:458) 
     at org.apache.cassandra.utils.FBUtilities.construct(FBUtilities.java:470) 
     at org.apache.cassandra.utils.FBUtilities.newPartitioner(FBUtilities.java:416) 
     at org.apache.cassandra.hadoop.ConfigHelper.getInputPartitioner(ConfigHelper.java:422) 
     ... 26 more 
Caused by: java.lang.NoClassDefFoundError: org/github/jamm/MemoryMeter$Guess 
     at org.apache.cassandra.utils.ObjectSizes.<clinit>(ObjectSizes.java:34) 
     at org.apache.cassandra.dht.RandomPartitioner.<clinit>(RandomPartitioner.java:45) 
     at java.lang.Class.forName0(Native Method) 
     at java.lang.Class.forName(Class.java:190) 
     at org.apache.cassandra.utils.FBUtilities.classForName(FBUtilities.java:450) 
     ... 29 more 
Caused by: java.lang.ClassNotFoundException: org.github.jamm.MemoryMeter$Guess 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
     ... 34 more 
+0

Вы уверены, что вы работаете с Random секционирования? По умолчанию на Cassandra 2.0 есть murmur3 – RussS

+0

Я попытался добавить MURMUR3 изначально, b/c то же самое произошло, я изменил его на RandomPartitioner !!! @RussS – Raja

+1

Какая версия JAMM находится на вашем пути к классу? –

ответ

1

Я столкнулся с той же проблемой при обновлении Cassandra до 2.1 в нашей системе, и основная причина заключается в следующем.

Использована версия Jamm для Cassandra 2.1 - 3.0.0, а старше Cassandra использовал 2.5. Поэтому, пожалуйста, обновите версию Jamm, которую вы используете, и проблема может быть исправлена.

http://mvnrepository.com/artifact/com.github.jbellis/jamm/0.3.0

Смежные вопросы