【问题标题】:Use Apache SAMOA with Apache Storm. First run: "ClassNotFoundException: backtype.storm.topology.TopologyBuilder"将 Apache SAMOA 与 Apache Storm 一起使用。第一次运行:“ClassNotFoundException:backtype.storm.topology.TopologyBuilder”
【发布时间】:2016-11-09 01:20:31
【问题描述】:

我是 Samoa 和 Storm 的初学者。 我正在为一个大学项目学习萨摩亚。 我读到要使用 Samoa,我必须使用 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。一切似乎都很好。

然后,我继续遵循萨摩亚的指南,直到“入门”部分,其中有一个示例。在这里我遇到了问题。 我下载了示例数据集并按照说明解压缩了它,然后我尝试按照指南运行 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.x 中,许多包从 backtype/... 重命名为 org/apache/storm/...

标签: java apache-storm samoa


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-12-25
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    • 2012-10-04
    • 2011-09-12
    • 2020-01-17
    • 2012-04-26
    • 2012-07-21
    相关资源
    最近更新 更多