amazon-ecsapache-storm

How do I get storm nimbus v1.2.1 running on ECS with additional config commands


I'm trying to get storm nimbus running on ECS.

I'm using the image: storm:1.2.1.

After battling with the fact that ECS command parser is pretty terrible (How to escape comma in ECS task definition command) I finally got the container running. However, the container stops with ExitCode 13. Yes, 13, not 137.

These are the only logs:

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

I can't find any information on what ExitCode 13 means. Anyone know?

Update: I believe 13 might be a PID.

The real question is: Why did the container just stop?


Solution

  • The issue was that the nimbus couldn't talk to the zookeeper.

    I had deployed the containers in a single task definition on ECS FARGATE. However, that uses the awsvpc network type and containers can't talk to one another but by service discovery.

    Once I had setup service discovery for the ECS Service and re-configured storm.zookeeper.servers to point to the nimbus via that then it all worked.