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

因此,我按照Apache Samoa官方网站上的步骤进行操作,并在命令行中键入了以下内容:

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

cd incubator-samoa

mvn -Pstorm package


然后,在安装之后(所有测试结果均为“ SUCCESS”),我按照另一指南安装Storm和Zookeeper:http://www.tutorialspoint.com/apache_storm/apache_storm_installation.htm。一切似乎还好。

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

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核心的代码将失败。如果风暴集群是10,则所有代码都应使用。如果1.0,则所有代码都应使用1.0。

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

10-13 05:37