无法找到分区类 - Cassandra

时间:2014-12-12 16:09:23

标签: hadoop cassandra cassandra-2.0

当我在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

1 个答案:

答案 0 :(得分:2)

在我们的系统中将Cassandra升级到2.1时遇到了同样的问题,其根本原因如下:

Cassandra 2.1使用的jamm版本是3.0.0,而较旧的Cassandra使用的是2.5。因此,请更新您使用的jamm版本,您的问题可能会得到解决。

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