当前位置: 首页 > 知识库问答 >
问题:

使用Apache Storm 1.0.0在生产集群中运行拓扑时出错,拓扑无法启动

贺刚毅
2023-03-14

>

  • 灵光升起
  • StormUI启动
  • 我使用的两个工人都起来了
  • Zookeper已启动
  • 我和暴风一起跑

    Storm罐myjar.jar MyClass

    Nimbus提交拓扑

    该拓扑的日志文件不会出现在workers中。

    我在supervisor.log上的worker中有以下日志:

    2016-04-15 13:18:19.831 o.a.s.d.supervisor [WARN] There was a connection problem with nimbus. #error {
     :cause jobs-rec-storm-nimbus
     :via
     [{:type java.lang.RuntimeException
       :message org.apache.storm.thrift.transport.TTransportException: java.net.UnknownHostException: jobs-rec-storm-nimbus
       :at [org.apache.storm.security.auth.TBackoffConnect retryNext TBackoffConnect.java 64]}
      {:type org.apache.storm.thrift.transport.TTransportException
       :message java.net.UnknownHostException: jobs-rec-storm-nimbus
       :at [org.apache.storm.thrift.transport.TSocket open TSocket.java 226]}
      {:type java.net.UnknownHostException
       :message jobs-rec-storm-nimbus
       :at [java.net.AbstractPlainSocketImpl connect AbstractPlainSocketImpl.java 184]}]
     :trace
     [[java.net.AbstractPlainSocketImpl connect AbstractPlainSocketImpl.java 184]
      [java.net.SocksSocketImpl connect SocksSocketImpl.java 392]
      [java.net.Socket connect Socket.java 589]
      [org.apache.storm.thrift.transport.TSocket open TSocket.java 221]
      [org.apache.storm.thrift.transport.TFramedTransport open TFramedTransport.java 81]
      [org.apache.storm.security.auth.SimpleTransportPlugin connect SimpleTransportPlugin.java 103]
      [org.apache.storm.security.auth.TBackoffConnect doConnectWithRetry TBackoffConnect.java 53]
      [org.apache.storm.security.auth.ThriftClient reconnect ThriftClient.java 99]
      [org.apache.storm.security.auth.ThriftClient <init> ThriftClient.java 69]
      [org.apache.storm.utils.NimbusClient <init> NimbusClient.java 106]
      [org.apache.storm.utils.NimbusClient getConfiguredClientAs NimbusClient.java 78]
      [org.apache.storm.utils.NimbusClient getConfiguredClient NimbusClient.java 41]
      [org.apache.storm.blobstore.NimbusBlobStore prepare NimbusBlobStore.java 268]
      [org.apache.storm.utils.Utils getClientBlobStoreForSupervisor Utils.java 462]
      [org.apache.storm.daemon.supervisor$fn__9590 invoke supervisor.clj 942]
      [clojure.lang.MultiFn invoke MultiFn.java 243]
      [org.apache.storm.daemon.supervisor$mk_synchronize_supervisor$this__9351$fn__9369 invoke supervisor.clj 582]
      [org.apache.storm.daemon.supervisor$mk_synchronize_supervisor$this__9351 invoke supervisor.clj 581]
      [org.apache.storm.event$event_manager$fn__8903 invoke event.clj 40]
      [clojure.lang.AFn run AFn.java 22]
      [java.lang.Thread run Thread.java 745]]}
    2016-04-15 13:18:19.831 o.a.s.d.supervisor [INFO] Finished downloading code for storm id jobs-KafkaMigration-topology-3-1460740616
    2016-04-15 13:18:19.850 o.a.s.d.supervisor [INFO] Missing topology storm code, so can't launch worker with assignment ...(some more numbers)
    

    所以我确信我与nimbus有连接问题,但是worker中的属性文件是:

     storm.zookeeper.servers:
         - "192.168.22.209"
         - "192.168.22.216"
         - "192.168.22.217"
    
     storm.local.dir: "/app/home/storm"
    
    
     storm.zookeeper.root: "/storm-prod"
    
    # 
     nimbus.seeds: ["192.168.120.96"]
    

    错误在哪里,我如何修复它?

    谢了!

  • 共有1个答案

    臧友樵
    2023-03-14

    在这个上下文中发生的情况是,Storm supervisor第一次从Storm.yaml seeds/host中配置的任何内容解析nimbus,然后使用nimbus主机名下载拓扑构件。

    如果这是正确的,那么DNS对于群集设置是必需的。这远远不够理想,特别是在像Kubernetes这样的编排环境中使用容器时。

    我目前使用的解决方案是添加

    storm.local.hostname: "<local.ip.value>" 
    
     类似资料:
    • 在生产集群上运行 Topology 类似于在 本地模式 下运行.以下是步骤: 1)定义 Topology (如果使用 Java 定义, 则使用 TopologyBuilder ) 2)使用 StormSubmitter 将 topology 提交到集群. StormSubmitter 以 topology 的名称, topology 的配置和 topology 本身作为输入.例如: Config

    • 我试图在storm Clustre上部署一个简单的字数拓扑。我使用kafka作为输入(kafka Spout)。这是我得到的错误 java.lang.noClassDefFoundError:无法初始化类org.apache.log4j.log4jLogger.getLogger(logger.java:39)在kafka.utils.logging$class.logger(logger.sca

    • 我正在使用相同版本的petrel 0.9.3和apache storm。当我尝试运行拓扑时,会出现以下错误:

    • 问题内容: 我在使用IDE向生产集群提交拓扑时遇到了一个问题,而如果我在命令行中使用command 执行同样的事情,它的运行就像天堂一样。我从githublink看到了同样的例子。 为了提交拓扑,我正在使用这些行集 请建议我这是否是运行的正确方法? 问题答案: 很好找到解决方案。当我们运行“ storm jar”时,它将在提交的jar中触发storm.jar的属性标志。因此,如果我们要以编程方式提

    • 我终于觉得我有了一个在redis数据库上写的toopology。我有一个插销要打印,还有一个插销要插入Redis。但当我尝试启动拓扑时,会出现以下错误:

    • 这个拓扑运行正常,不知道是什么原因导致这个问题。