java - 将 Apache SAMOA 与 Apache Storm 结合使用。首次运行: "ClassNotFoundException: backtype.storm.topology.TopologyBuilder"

标签 java apache-storm samoa

我是 Samoa 和 Storm 的初学者。 我正在为萨摩亚大学项目学习。 我读到,为了使用萨摩亚,我必须使用 SPE(流处理引擎),例如 Storm。

于是,我按照Apache Samoa官网的步骤进行操作我在命令行中输入了以下内容:

git clone http://git.apache.org/incubator-samoa.git

cd incubator-samoa

mvn -Pstorm package

然后,安装完成后(所有测试结果都是“成功”),我按照另一个指南安装 Storm 和 Zookeeper:http://www.tutorialspoint.com/apache_storm/apache_storm_installation.htm 。一切看起来都很好。

然后,我继续遵循 Samoa 的指南,直到“入门”部分,其中有一个示例。这里我遇到了问题。 我下载了示例数据集并将其解压缩,按照说明进行操作,然后尝试按照指南运行萨摩亚:

bin/samoa local target/SAMOA-Local-0.3.0-SNAPSHOT.jar "PrequentialEvaluation -l classifiers.ensemble.Bagging -s (ArffFileStream -f covtypeNorm.arff) -f 100000"

但是,由于萨摩亚任务脚本的格式是 bin/samoa <platform> <jar> "<task>" ,我将命令修改为:

bin/samoa storm target/SAMOA-Storm-0.4.0-incubating-SNAPSHOT.jar "PrequentialEvaluation -l classifiers.ensemble.Bagging -s (ArffFileStream -f covtypeNorm.arff) -f 100000"

但是执行失败,我收到以下错误:

bin/samoa storm target/SAMOA-Storm-0.4.0-incubating-SNAPSHOT.jar "PrequentialEvaluation -l classifiers.ensemble.Bagging -s (ArffFileStream -f covtypeNorm.arff) -f 100000"
bin/samoa
Deploying to STORM
Exception in thread "main" java.lang.NoClassDefFoundError: backtype/storm/topology/TopologyBuilder
    at org.apache.samoa.topology.impl.StormTopology.<init>(StormTopology.java:40)
    at org.apache.samoa.topology.impl.StormComponentFactory.createTopology(StormComponentFactory.java:64)
    at org.apache.samoa.topology.TopologyBuilder.initTopology(TopologyBuilder.java:87)
    at org.apache.samoa.topology.TopologyBuilder.initTopology(TopologyBuilder.java:71)
    at org.apache.samoa.tasks.PrequentialEvaluation.setFactory(PrequentialEvaluation.java:193)
    at org.apache.samoa.topology.impl.StormSamoaUtils.argsToTopology(StormSamoaUtils.java:82)
    at org.apache.samoa.LocalStormDoTask.main(LocalStormDoTask.java:61)
Caused by: java.lang.ClassNotFoundException: backtype.storm.topology.TopologyBuilder
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 7 more

有人可以帮助我吗?

PS:很抱歉出现任何错误(包括格式错误!),但我是这个领域的新手(即使是在 StackOverflow 中!):)

提前致谢。

最佳答案

请确保您的集群和所有库依赖项均位于同一版本。 Storm 1.0 更改了包名称,因此依赖于 Storm 核心提供的库的代码将失败。如果storm集群是.10,所有代码都应该使用.10,如果是1.0,那么所有代码​​都应该在1.0

关于java - 将 Apache SAMOA 与 Apache Storm 结合使用。首次运行: "ClassNotFoundException: backtype.storm.topology.TopologyBuilder",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37259566/

相关文章:

java - Apache Storm : Track tuples by unique ID from Source Spout to Final Bolt

python - 如何在 Intellij 中从 storm-starter 运行 WordCount Topology

java - 如何覆盖 Spring 3.1 @PropertySource 以设置 IgnoreResourceNotFound 和 IgnoreUnresolvablePlaceholders

java - HRegionInterface 在 Hbase1.1.1 中删除,替换它

java - @Value 注解总是返回 null

java - LinkedList队列实现

java - Storm bolt 如何从不同的喷口或其他 bolt 接收多种类型的元组?