美文网首页程序员每天写1000字
storm部署Topology出现的ExceptionInIni

storm部署Topology出现的ExceptionInIni

作者: 皮皮卡卡丘 | 来源:发表于2018-12-27 22:03 被阅读3次

 在Storm集群上提交Topology时,在用户代码没有问题的情况下,有可能会出现ExceptionInInitializerError,出现这种错误时,不要因为错误信息太多而慌张,需要追踪下信息的最终来源,以确定问题。以下面的异常为例,仔细分析发现,主要的异常是RuntimeException,而异常的原因是: Found multiple defaults.yaml resources.

Running: /usr/local/jdk/bin/java -client -Ddaemon.name= -Dstorm.options= -Dstorm.home=/usr/local/storm -Dstorm.log.dir=/usr/local/storm/logs -Djava.library.path= -Dstorm.conf.file= -cp /usr/local/storm/*l/storm/extlib/*:storm-load.jar:/usr/local/storm/conf:/usr/local/storm/bin -Dstorm.jar=storm-load.jar -Dstorm.dependency.jars= -Dstorm.dependency.artifacts={} org.hit.edu.wordcount.App word-count-topolog
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/storm/lib/log4j-slf4j-impl-2.8.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/root/storm-load.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Exception in thread "main" java.lang.ExceptionInInitializerError
    at org.apache.storm.topology.TopologyBuilder.createTopology(TopologyBuilder.java:123)
    at org.hit.edu.wordcount.App.main(App.java:44)
Caused by: java.lang.RuntimeException: java.io.IOException: Found multiple defaults.yaml resources. You're probably bundling the Storm jars with your topology jar. [jar:file:/root/storm-load.jar!/default/lib/storm-core-1.2.2.jar!/defaults.yaml]
    at org.apache.storm.utils.Utils.findAndReadConfigFile(Utils.java:384)
    at org.apache.storm.utils.Utils.readDefaultConfig(Utils.java:428)
    at org.apache.storm.utils.Utils.readStormConfig(Utils.java:464)
    at org.apache.storm.utils.Utils.<clinit>(Utils.java:178)
    ... 2 more
Caused by: java.io.IOException: Found multiple defaults.yaml resources. You're probably bundling the Storm jars with your topology jar. [jar:file:/root/storm-load.jar!/defaults.yaml, jar:file:/usr/local/efaults.yaml]
    at org.apache.storm.utils.Utils.getConfigFileInputStream(Utils.java:410)
    at org.apache.storm.utils.Utils.findAndReadConfigFile(Utils.java:363)
    ... 5 more

 这种异常配置的原因,主要是由于在生成Topology的运行jar包时,将storm-core.jar等包加入其中,导致的。以Eclipse为例,在生成运行jar包的时候,选择第三项。最后只将生成的storm-load.jar上传到集群即可。


image.png

 在集群上运行后的正确信息,如下所示:

[root@storm-master ~]# storm jar storm-load.jar org.hit.edu.wordcount.App word-count-topology
Running: /usr/local/jdk/bin/java -client -Ddaemon.name= -Dstorm.options= -Dstorm.home=/usr/local/storm -Dstorm.log.dir=/usr/local/storm/logs -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib -Dstorm.conf.file= -cp /usr/local/storm/*:/usr/local/storm/lib/*:/usr/local/storm/extlib/*:storm-load.jar:/usr/local/storm/conf:/usr/local/storm/bin -Dstorm.jar=storm-load.jar -Dstorm.dependency.jars= -Dstorm.dependency.artifacts={} org.hit.edu.wordcount.App word-count-topology
681  [main] WARN  o.a.s.u.Utils - STORM-VERSION new 1.2.2 old null
711  [main] INFO  o.a.s.StormSubmitter - Generated ZooKeeper secret payload for MD5-digest: -8297510894591833617:-7697782788510320264
884  [main] INFO  o.a.s.u.NimbusClient - Found leader nimbus : storm-master:6627
911  [main] INFO  o.a.s.s.a.AuthUtils - Got AutoCreds []
917  [main] INFO  o.a.s.u.NimbusClient - Found leader nimbus : storm-master:6627
939  [main] INFO  o.a.s.StormSubmitter - Uploading dependencies - jars...
940  [main] INFO  o.a.s.StormSubmitter - Uploading dependencies - artifacts...
940  [main] INFO  o.a.s.StormSubmitter - Dependency Blob keys - jars : [] / artifacts : []
955  [main] INFO  o.a.s.StormSubmitter - Uploading topology jar storm-load.jar to assigned location: /opt/storm/nimbus/inbox/stormjar-2b6238a6-bd1c-448b-983c-a3b3c2540c27.jar
976  [main] INFO  o.a.s.StormSubmitter - Successfully uploaded topology jar to assigned location: /opt/storm/nimbus/inbox/stormjar-2b6238a6-bd1c-448b-983c-a3b3c2540c27.jar
976  [main] INFO  o.a.s.StormSubmitter - Submitting topology word-count-topology in distributed mode with conf {"storm.zookeeper.topology.auth.scheme":"digest","storm.zookeeper.topology.auth.payload":"-8297510894591833617:-7697782788510320264","topology.workers":4,"topology.message.timeout.secs":10}
976  [main] WARN  o.a.s.u.Utils - STORM-VERSION new 1.2.2 old 1.2.2
1246 [main] INFO  o.a.s.StormSubmitter - Finished submitting topology: word-count-topology

 当然这只是其中一种异常的处理方式,还有很多其他异常,有需要帮助的可以留言。

相关文章

网友评论

    本文标题:storm部署Topology出现的ExceptionInIni

    本文链接:https://www.haomeiwen.com/subject/tsaclqtx.html