• 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.效果

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

  • 相关阅读:
    两个栈实现一个队列
    DacningLinks实现
    boost::implicit_cast
    hibernate查询之Criteria实现分页方法(GROOVY语法)
    VS2015 android 设计器不能可视化问题解决。
    当Eclipse爱上SVN
    你不知道的getComputedStyle
    推荐的软件
    React之表单
    理解javascript中的Function.prototype.bind
  • 原文地址:https://www.cnblogs.com/juncaoit/p/9152716.html
Copyright © 2020-2023  润新知