我是 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/