Apache Ignite和Cassandra - NoClassDefFoundError

时间:2016-11-25 08:55:34

标签: java cassandra ignite

我希望评估将Apache Ignite与Apache Cassandra一起使用的性能提升。我从源代码构建了Ignite,默认配置启动正常。从example in the documentation开始,我试图建立一个基本集群,但我一直在使用的类上获得 java.lang.ClassNotFoundException ,例如 org.apache。 ignite.cache.store.cassandra.utils.datasource.DataSource 即可。

我已经在提供的广告中搜索了类文件,广告设置了相应的环境变量(CLASSPATH和USER_LIBS)。但是,Ignite找不到它们。我正在使用ignite 1.7和Oracle JDK 1.8。

任何建议都应该得到真正的赞赏。谢谢。

更新

我尝试将 ignite-cassandra 文件夹复制到 libs 文件夹中,如README文件中所建议的那样。无论是否设置IGNITE_HOME环境变量,无论是bin还是src分布,都无法找到所需的类。

2 个答案:

答案 0 :(得分:0)

ignite-cassandra文件夹复制到libs必须有所帮助。请注意,必须在节点启动之前完成。如果仍然修改CLASSPATHUSER_LIBS变量,请尝试取消设置,并让ignite.sh脚本创建类路径。只要您的libs文件夹结构正确,就应该自动完成。

答案 1 :(得分:0)

我发现了造成这个问题的原因。 Ignite文档页面中的example provided在几个类的包结构中有细微差别,例如:

  • org.apache.ignite.cache.store.cassandra.datasource.DataSource(ignite-cassandra.jar中的课程)
  • org.apache.ignite.cache.store.cassandra.utils.datasource.DataSource(示例中的类)

这同样适用于示例中的其他类。我不知道这是否是由于对代码的重构没有通过示例传播,或者只是我使用了与我运行的文档不同的文档版本。