不正确的nimbus主机分辨率

eit6fx6z  于 2021-06-24  发布在  Storm
关注(0)|答案(1)|浏览(313)

我在单独的docker容器中运行ApacheStormNimbus和supervisor,使用https://hub.docker.com/_/storm/. 这些容器在同一个aws ec2示例上运行。我用来启动nimbus容器的命令是

docker run -p 6627:6627 --hostname <ec2_public_ip> -d --restart always --name nimbus storm storm nimbus -c storm.zookeeper.servers='[<zookeeper_hosts>]'

我用来启动supervisor容器的命令是

docker run -p 6700:6700 --hostname <ec2_public_ip> -d --restart always --name supervisor storm storm supervisor -c storm.zookeeper.servers='[<zookeeper_hosts>]' -c nimbus.seeds='[<ec2_public_ip>]'

安全组中的所有端口都已打开,zookeeper示例已启动并正在运行。
当我尝试使用

storm jar topology.jar topologyClass

storm最初使用正确的公共ip地址和日志

2037 [main] INFO  o.a.s.u.NimbusClient - Found leader nimbus : ip-<private_ip_address>.us-west-1.compute.internal:6627

但是,您可以在上面的日志中看到,私有ip地址是返回的,storm无法连接到该地址。

Caused by: java.lang.RuntimeException: org.apache.storm.thrift.transport.TTransportException: java.net.UnknownHostException: ip-<private_ip_address>.us-west-1.compute.internal

有人能指出,将公共ip地址从docker容器内部而不是私有ip地址发送回storm的方法是什么吗?

i7uaboj4

i7uaboj41#

nimbus在https://github.com/apache/storm/blob/e909b3d604367e7c47c3bbf3ec8e7f6b672ff778/storm-client/src/jvm/org/apache/storm/nimbus/nimbusinfo.java#l56
如你所见,你应该 storm.local.hostname 在你的Storm中。

相关问题