我正在尝试让 Storm Nimbus 在 ECS 上运行。
我正在使用图像:
storm:1.2.1
。
在与 ECS 命令解析器非常糟糕的事实作斗争之后(如何在 ECS 任务定义命令中转义逗号),我终于让容器运行了。但是,容器停止并显示 ExitCode 13。是的,13,而不是 137。
这些是唯一的日志:
Running: /usr/lib/jvm/java-1.8-openjdk/jre/bin/java -server -Ddaemon.name=nimbus -Dstorm.options=storm.zookeeper.servers%3D%5B%22zookeeper%22%5D,supervisor.slots.ports%3D%5B6700%2C6701%2C6702%2C6703%2C6704%2C6705%2C6706%2C6707%5D,storm.local.hostname%3Dstorm.crawl -Dstorm.home=/apache-storm-1.2.1 -Dstorm.log.dir=/logs -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib -Dstorm.conf.file= -cp /apache-storm-1.2.1/*:/apache-storm-1.2.1/lib/*:/apache-storm-1.2.1/extlib/*:/apache-storm-1.2.1/extlib-daemon/*:/conf -Xmx1024m -Dlogfile.name=nimbus.log -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector -Dlog4j.configurationFile=/apache-storm-1.2.1/log4j2/cluster.xml org.apache.storm.daemon.nimbus
我找不到任何有关 ExitCode 13 含义的信息。 有谁知道吗?
更新:我相信13可能是一个PID。
真正的问题是:为什么容器会停下来?
问题是 nimbus 无法与动物园管理员对话。
我已将容器部署在 ECS FARGATE 上的单个任务定义中。 但是,它使用 awsvpc 网络类型,容器之间无法相互通信,只能通过服务发现进行通信。
一旦我为 ECS 服务设置了服务发现并重新配置
storm.zookeeper.servers
以通过该服务指向 nimbus,那么一切就正常了。
您能否提供指导,您是如何在 AWS ECS 上成功部署 Apache Storm 的?有这样的成就的任何文档吗?