使用apache storm 1.0.0在生产集群中运行拓扑时出错,拓扑未启动

wlsrxk51  于 2021-06-21  发布在  Storm
关注(0)|答案(3)|浏览(374)

我有一个在本地集群上运行良好的拓扑。但是,当我尝试在生产集群上运行它时,会发生以下情况:
光轮升起了
风暴开始了
我用的两个工人用完了
zookeper启动了
我和你一起狂奔
风暴jar myjar.jar myclass
nimbus提交拓扑
拓扑和工人出现在storm ui中
但是:
尽管拓扑的状态是活动的,但它不会启动
拓扑的日志文件不会出现在worker中。
我在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"]

如果我从workers对nimbus ip进行ping,它会返回ok
哪里出错了,我该如何修复?
谢谢!

htzpubme

htzpubme1#

在这种情况下,storm supervisor第一次从storm.yaml seeds/host中配置的任何东西解析nimbus,然后使用nimbus主机名下载拓扑构件。
如果这是正确的,那么dns对于群集设置是必需的。这还远远不够理想,特别是在kubernetes这样的协调环境中使用容器时。
我目前使用的解决方法是添加

storm.local.hostname: "<local.ip.value>"

去暴风城。亚马尔
感谢@bastien提供了有关storm用户邮件列表的提示

iibxawm4

iibxawm42#

我发现我需要让这些盒子的主机名与我在/etc/hosts文件中调用的主机名匹配
在我的主机文件中
...光轮
但是盒子上的主机名不同,它从操作系统中提取主机名
更改nimbus服务器操作系统上的主机名解决了我的问题。

piwo6bdm

piwo6bdm3#

我也遇到了类似的问题。原来我的防火墙规则阻止了监控端口。确保主管和nimbus能够相互交谈。

相关问题