• Strom在本地运行调试出现的错误


    1.错误日志

    31385 [main] WARN  backtype.storm.daemon.nimbus - Topology submission exception. (topology name='webloganalyse2') #<InvalidTopologyException InvalidTopologyException(msg:Component: [countIpBolt] subscribes from non-existent stream: [ipCountStream] of component [webLogParserBolt])>
    31385 [main] ERROR org.apache.storm.zookeeper.server.NIOServerCnxnFactory - Thread Thread[main,5,main] died
    backtype.storm.generated.InvalidTopologyException: null
        at backtype.storm.daemon.common$validate_structure_BANG_.invoke(common.clj:172) ~[storm-core-0.9.6.jar:0.9.6]
        at backtype.storm.daemon.common$system_topology_BANG_.invoke(common.clj:307) ~[storm-core-0.9.6.jar:0.9.6]
        at backtype.storm.daemon.nimbus$fn__4261$exec_fn__1104__auto__$reify__4274.submitTopologyWithOpts(nimbus.clj:948) ~[storm-core-0.9.6.jar:0.9.6]
        at backtype.storm.daemon.nimbus$fn__4261$exec_fn__1104__auto__$reify__4274.submitTopology(nimbus.clj:966) ~[storm-core-0.9.6.jar:0.9.6]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_144]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_144]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_144]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_144]
        at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:93) ~[clojure-1.5.1.jar:na]
        at clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:28) ~[clojure-1.5.1.jar:na]
        at backtype.storm.testing$submit_local_topology.invoke(testing.clj:264) ~[storm-core-0.9.6.jar:0.9.6]
        at backtype.storm.LocalCluster$_submitTopology.invoke(LocalCluster.clj:43) ~[storm-core-0.9.6.jar:0.9.6]
        at backtype.storm.LocalCluster.submitTopology(Unknown Source) ~[storm-core-0.9.6.jar:0.9.6]
        at com.jun.it2.WebLogStatictis.main(WebLogStatictis.java:31) ~[classes/:na]

    2.出现这个问题的原因

      下游Bolt未定义数据流错误

      在下游Bolt接收数据时,往往会忽略具体的接收数据流名称,例如

      builder.setBolt(devInter, new InterBolt().shuffleGrouping(dev);

    3.分析本日志

      可以看到在webLogParserBolt.java中。

      同时说明,在countIpBolt中不存在ipCountStream流名称。

    4.看自己的程序、

      

    5.修改后的程序

      

    6.效果

      这个时候,就不会再报错了。

  • 相关阅读:
    141. Linked List Cycle
    140. Word Break II
    139. Word Break
    138. Copy List with Random Pointer
    137. Single Number II
    136. Single Number
    135. Candy
    134.Gas Station
    linux/ubuntu 设置代理服务器
    sqlserver/mssql 查看版本信息
  • 原文地址:https://www.cnblogs.com/juncaoit/p/9152716.html
Copyright © 2020-2023  润新知