线程“main”java.lang.runtimeexception中出现异常:执行storm时发现多个defaults.yaml资源

bjp0bcyl  于 2021-06-21  发布在  Storm
关注(0)|答案(2)|浏览(319)

我正在尝试执行这里的教程http://virajonlinetutor.blogspot.in/
Kafka风暴拓扑代码是:

  1. package com.storm;
  2. import storm.kafka.KafkaSpout;
  3. import storm.kafka.SpoutConfig;
  4. import storm.kafka.StringScheme;
  5. import storm.kafka.ZkHosts;
  6. import backtype.storm.Config;
  7. import backtype.storm.LocalCluster;
  8. import backtype.storm.spout.SchemeAsMultiScheme;
  9. import backtype.storm.topology.TopologyBuilder;
  10. public class KafkaStormTopology {
  11. public static void main(String[] args) {
  12. ZkHosts zk = new ZkHosts("10.25.3.208:2181");
  13. SpoutConfig config = new SpoutConfig(zk,"deepthy","",
  14. "KafkaStorm");
  15. config.scheme = new SchemeAsMultiScheme(new StringScheme());
  16. config.forceFromStart = true;
  17. TopologyBuilder builder = new TopologyBuilder();
  18. builder.setSpout("KafkaSpout", new KafkaSpout(config), 1);
  19. builder.setBolt("Bolt", new FileBolt(), 1).globalGrouping("KafkaSpout");
  20. LocalCluster cluster = new LocalCluster();
  21. Config conf = new Config();
  22. conf.setDebug(true);
  23. cluster.submitTopology("SampleTopology", conf, builder.createTopology());
  24. }
  25. }

我的pom.xml:

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.deepthy.storm</groupId>
  5. <artifactId>Storm</artifactId>
  6. <version>0.0.1-SNAPSHOT</version>
  7. <name>Storm</name>
  8. <url>http://maven.apache.org</url>
  9. <properties>
  10. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  11. </properties>
  12. <repositories>
  13. <repository>
  14. <id>clojars.org</id>
  15. <url>http://clojars.org/repo</url>
  16. </repository>
  17. <repository>
  18. <id>central</id>
  19. <url>http://repo1.maven.org/maven2/</url>
  20. </repository>
  21. </repositories>
  22. <dependencies>
  23. <dependency>
  24. <groupId>junit</groupId>
  25. <artifactId>junit</artifactId>
  26. <version>3.8.1</version>
  27. <scope>test</scope>
  28. </dependency>
  29. <dependency>
  30. <groupId>org.apache.storm</groupId>
  31. <artifactId>storm-core</artifactId>
  32. <version>0.9.2-incubating</version>
  33. <scope>provided</scope>
  34. </dependency>
  35. <dependency>
  36. <groupId>org.apache.storm</groupId>
  37. <artifactId>storm-kafka</artifactId>
  38. <version>0.9.2-incubating</version>
  39. <scope>provided</scope>
  40. </dependency>
  41. <dependency>
  42. <groupId>org.apache.kafka</groupId>
  43. <artifactId>kafka_2.10</artifactId>
  44. <version>0.8.2.2</version>
  45. <scope>provided</scope>
  46. </dependency>
  47. </dependencies>
  48. <build>
  49. <plugins>
  50. <plugin>
  51. <groupId>org.apache.maven.plugins</groupId>
  52. <artifactId>maven-assembly-plugin</artifactId>
  53. <version>2.5.3</version>
  54. <configuration>
  55. <descriptorRefs>
  56. <descriptorRef>jar-with-dependencies</descriptorRef>
  57. </descriptorRefs>
  58. <archive>
  59. <manifest>
  60. <mainClass>com.storm.KafkaStormTopology</mainClass>
  61. </manifest>
  62. </archive>
  63. </configuration>
  64. <executions>
  65. <execution>
  66. <phase>package</phase>
  67. <goals>
  68. <goal>single</goal>
  69. </goals>
  70. </execution>
  71. </executions>
  72. </plugin>
  73. </plugins>
  74. </build>
  75. </project>

我得到以下错误:

  1. Exception in thread "main" java.lang.RuntimeException: Found multiple defaults.yaml resources. You're probably bundling the Storm jars with your topology jar. [jar:file:/usr/hdp/2.3.0.0-2557/storm/lib/storm-core-0.10.0.2.3.0.0-2557.jar!/defaults.yaml, jar:file:/usr/hdp/2.3.0.0-2557/storm/S1.jar!/defaults.yaml]
  2. at backtype.storm.utils.Utils.findAndReadConfigFile(Utils.java:140)
  3. at backtype.storm.utils.Utils.readDefaultConfig(Utils.java:167)
  4. at backtype.storm.utils.Utils.readStormConfig(Utils.java:191)
  5. at backtype.storm.config$read_storm_config.invoke(config.clj:121)
  6. at backtype.storm.command.config_value$_main.invoke(config_value.clj:22)
  7. at clojure.lang.AFn.applyToHelper(AFn.java:161)
  8. at clojure.lang.AFn.applyTo(AFn.java:151)
  9. at backtype.storm.command.config_value.main(Unknown Source)

我尝试在pom.xml中将作用域从“compile”更改为“provided”,但得到了相同的错误。
任何关于如何解决这个问题的建议。

mefy6pfw

mefy6pfw1#

排除pom文件中的default.yaml文件。
在shade插件中添加:meta-inf/.sf-meta-inf/.dsa-meta-inf/.rsa.yaml

k5ifujac

k5ifujac2#

您的jar包含该文件 defaults.yaml 这是不允许的。您需要从jar组装步骤中排除该文件。我建议使用 maven-jar-plugin 而不是 maven-assembly-plugin 并且“手动”包含所有需要的文件——这也有助于“最小化”您的jar,使其只包含您需要的内容:

  1. <plugin>
  2. <groupId>org.apache.maven.plugins</groupId>
  3. <artifactId>maven-jar-plugin</artifactId>
  4. <executions>
  5. <execution>
  6. <id>YOUR-ID</id>
  7. <phase>package</phase>
  8. <goals>
  9. <goal>jar</goal>
  10. </goals>
  11. <configuration>
  12. <finalName>JAR-FILE-NAME-PREFIX</finalName>
  13. <classifier>JAR-FILE-NAME-SUFFIX</classifier>
  14. <archive>
  15. <manifestEntries>
  16. <mainClass>com.storm.KafkaStormTopology</mainClass>
  17. </manifestEntries>
  18. </archive>
  19. <includes>
  20. <include>packages/to/include/**/*.java</include>
  21. <!-- more include here -->
  22. <includes>
  23. </configuration>
  24. </execution>
  25. </executions>
  26. </plugin>
展开查看全部

相关问题