apache-storm - Storm ClassNotFoundException

标签 apache-storm

我是第一次使用 Storm(从开始使用 Storm 学习),我的项目在运行时失败并出现 ClassNotFoundException:

[WARNING]
java.lang.ClassNotFoundException: TopologyMain
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:285)
    at java.lang.Thread.run(Unknown Source)

这些是 TopologyMain 和 pom 文件:

import spouts.WordReader;
import backtype.storm.Config;
import backtype.storm.LocalCluster;
import backtype.storm.topology.TopologyBuilder;
import backtype.storm.tuple.Fields;
import bolts.WordCounter;
import bolts.WordNormalizer;


public class TopologyMain {
public static void main(String[] args) throws InterruptedException {

    //Topology definition
    TopologyBuilder builder = new TopologyBuilder();
    builder.setSpout("word-reader",new WordReader());
    builder.setBolt("word-normalizer", new WordNormalizer())
        .shuffleGrouping("word-reader");
    builder.setBolt("word-counter", new WordCounter(),1)
        .fieldsGrouping("word-normalizer", new Fields("word"));

    //Configuration
    Config conf = new Config();
    conf.put("wordsFile", args[0]);
    conf.setDebug(false);
    //Topology run
    conf.put(Config.TOPOLOGY_MAX_SPOUT_PENDING, 1);
    LocalCluster cluster = new LocalCluster();
    cluster.submitTopology("Getting-Started-Toplogie", conf, builder.createTopology());
    Thread.sleep(1000);
    cluster.shutdown();
}
}

任务:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
     http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>
  <groupId>storm.book</groupId>
  <artifactId>Getting-Started</artifactId>
  <version>0.0.1-SNAPSHOT</version>

  <build>
   <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
         <version>2.3.2</version>
        <configuration>
      <source>1.6</source>
      <target>1.6</target>
      <compilerVersion>1.6</compilerVersion>
    </configuration>
  </plugin>
 </plugins>

    <!-- Repository where we can found the storm dependencies  -->
    <repository>
        <id>clojars.org</id>
        <url>http://clojars.org/repo</url>
    </repository>

    <!-- Storm Dependency -->
    <dependency> 
      <groupId>storm</groupId>
      <artifactId>storm</artifactId>
      <version>0.7.1</version>
   </dependency>

我真的不太了解 Storm ,这是学校项目,所以请帮忙

最佳答案

你应该发起:

mvn -f pom.xml clean install

这将在您的目标目录中创建 jar 文件。
之后您可以使用此命令来执行拓扑:

mvn exec:java -Dexec.mainClass="TopologyMain" -Dexec.args="src/main/resources/words.txt"

祝你好运!

关于apache-storm - Storm ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16598367/

相关文章:

java - 如何在java中知道Kafka代理的状态?

hadoop - 最多 200 列的行交互式查询的最佳大数据解决方案是什么?

java - 使用 Redis 运行 Storm 时出错 : java. lang.NoClassDefFoundError: Lredis/clients/jedis/Jedis

java - 为什么 Storm 不在工作集群上重播失败消息,而是在本地桌面上以集群模式重播

python - IRichBolt 在storm-1.0.0 和 pyleus-0.3.0 上运行拓扑时出错

real-time - Storm 用户界面 : Difference between Execute and Process Latencies

hadoop - "Ack"在 Apache Storm/Hadoop 中意味着什么?

apache-storm - 我可以在 Storm 任务运行时更改拓扑吗?

Spring Boot uber jar 将类打包到 root 而不是 BOOT-INF/classes

apache-storm - 如何关闭由 Storm Trident 拓扑中的 IBackingMap 实现打开的数据库连接?