Stormcrawler 1.16中的拓扑提交错误

问题描述 投票:0回答:1

我正在使用Stormcrawler 1.16,storm 1.2.3,elasticsearch 7.2.0。和此命令来提交拓扑。

storm jar target/newscrawler-1.0-SNAPSHOT.jar  org.apache.storm.flux.Flux --local es-crawler.flux

我遇到的错误是-

Version: 1.2.3
Parsing file: /home/ubuntu/newscrawler/es-crawler.flux
790  [main] INFO  o.a.s.f.p.FluxParser - loading YAML from input stream...
796  [main] INFO  o.a.s.f.p.FluxParser - Not performing property substitution.
796  [main] INFO  o.a.s.f.p.FluxParser - Not performing environment variable 
substitution.
881  [main] INFO  o.a.s.f.p.FluxParser - Loading includes from resource: /crawler- 
default.yaml
882  [main] INFO  o.a.s.f.p.FluxParser - loading YAML from input stream...
885  [main] INFO  o.a.s.f.p.FluxParser - Not performing property substitution.
886  [main] INFO  o.a.s.f.p.FluxParser - Not performing environment variable 
substitution.
Configuration (interpreted): 
!!org.apache.storm.flux.model.TopologyDef
bolts: []
components: []
config:

955  [main] INFO  o.a.s.f.FluxBuilder - Detected DSL topology...
Exception in thread "main" java.lang.ClassNotFoundException: 
    com.digitalpebble.stormcrawler.elasticsearch.persistence.AggregationSpout
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at 
  java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:315)
at org.apache.storm.flux.FluxBuilder.buildObject(FluxBuilder.java:342)
at org.apache.storm.flux.FluxBuilder.buildSpout(FluxBuilder.java:458)
at org.apache.storm.flux.FluxBuilder.buildSpouts(FluxBuilder.java:431)
at org.apache.storm.flux.FluxBuilder.buildTopology(FluxBuilder.java:110)
at org.apache.storm.flux.Flux.runCli(Flux.java:158)
at org.apache.storm.flux.Flux.main(Flux.java:103)

有人请向我解释这是什么以及如何解决此问题。

elasticsearch web-crawler stormcrawler
1个回答
0
投票

您的POM文件可能缺少storm-crawler-elasticsearch依赖项。

您可以将您的代码与storm-crawler-elasticsearch-archetype生成的代码进行比较,这将为您提供有效的配置。

将Elasticsearch原型用于:

MVN原型:生成 -DarchetypeGroupId = com.digitalpebble.stormcrawler -DarchetypeArtifactId = storm-crawler-elasticsearch-archetype -DarchetypeVersion = LATEST

系统会要求您输入一个groupId(例如com.mycompany.crawler), artefactId(例如,stormcrawler),版本和程序包名称。

这不仅会创建一个包含以下内容的POM的完整项目: 上面的依赖关系,还有一组资源,配置文件 和拓扑类。输入您刚创建的目录(应为 与您之前指定的artefactId相同),然后按照 README文件上的说明。

© www.soinside.com 2019 - 2024. All rights reserved.