After doing more testing and finding the nimbus logfile in the storm dir, I was able to narrow down the problem to a bug in Zookeeper 3.4, which is somehow still used by storm internally, and Java 14:
https://issues.apache.org/jira/browse/ZOOKEEPER-3779 Others seem to have the same problem: https://stackoverflow.com/questions/63804162/apache-storm-local-cluster-unable-to-canonicalize-address It would be helpful if anybody knew how to overcome this, either by using a higher zookeeper version in the shaded deps or by setting some config options so it goes away. If someone from the storm devs thinks it's worth raising an issue I am glad to contribute, if I can. Thanks Jonas Am Di., 24. Nov. 2020 um 17:34 Uhr schrieb Jonas Krauss <jkraus...@gmail.com >: > Hi all, > > we have recently tried to update zookeeper from 3.4.13 to 3.6.2 on our > production storm cluster without success. Therefore, we are now tinkering > with a test cluster, including just two nodes. > > The two nodes have the following setup: > > *OS* Ubuntu 20.04.1 LTS > *Zookeeper *3.6.2 > *Storm *2.2.0 > *Java *OpenJDK Runtime Environment (build 14.0.2+12-Ubuntu-120.04) > *Python* 2.7.18 > *Python2* 2.7.18 > *Python3* 3.8.5 > > > We are following this guide *to the letter*: > http://storm.apache.org/releases/current/Setting-up-a-Storm-cluster.html > > First problem here: when following the guide and setting the mandatory > parameters, you will end up with a configuration where the UI does not work. > This is because according to the defaults.yaml, *both ui.port and > storm.exhibitor.port are set to 8080*. This is where I get my information > in regards to the default values from: > https://github.com/apache/storm/blob/master/conf/defaults.yaml > Left unconfigured, the UI will not start because it cannot bind to port > 8080. Instead, you will see the 404 page from jetty. > It took me quite a while to figure this, so I would be glad the person in > charge could amend the docs to reflect the necessity to set one of the two > to something different. > > Next problem, which I am not able to solve, but from searching the web I > understand many storm users are facing similar problems, is the dreaded > *NimbusLeaderNotFoundException: > Could not find leader nimbus from seed hosts* > Some examples: > > > https://stackoverflow.com/questions/36742451/apache-storm-could-not-find-leader-nimbus-from-seed-hosts > > https://stackoverflow.com/questions/58155057/how-to-fix-could-not-find-leader-nimbus-from-seed-hosts-192-168-23-165 > > https://stackoverflow.com/questions/37480155/nimbusleadernotfoundexception-in-apache-storm > > > I have double checked the ports are accessible on both nodes and that > everything else is running as expected. > > Looking at the outputs from nimbus and supervisor, there is no error > message (stderr is empty) and there is no useful logging in stdout, only > the java command which starts the two processes. Upon accessing the UI in > the browser, the process will load for a while, then, both nimbus and > supervisor will crash/be killed/? and the error message appears. I have run > the processes in supervision with supervisord and also have tried to start > them via bash, to get more meaningful logging, no luck here. > > It is almost impossible to debug without more meaningful logging. My best > guess is it has to do with that we > > Maybe I am missing something in the host configurations, but I am at a > loss here so I would appreciate any pointers to where to look next. > > Attaching storm.yaml and hosts configurations below. > > Regards > > Jonas > > *storm.yaml* > > storm.zookeeper.servers: > - "stormtest1.example.com" > - "stormtest2.example.com" > > nimbus.seeds: ["stormtest1.example.com", "stormtest2.example.com"] > > storm.local.dir: "/storm" > storm.zookeeper.root: "/zookeeper" > supervisor.slots.ports: > - 6700 > - 6701 > - 6702 > - 6703 > > ui.port: 8888 > > > */etc/hosts (node 1)* > > 127.0.1.1 storm-1 > 127.0.0.1 localhost > # Test Storm > xxx.xxx.xxx.xxx stormtest1.example.com storm-test-1 > xxx.xxx.xxx.xxx stormtest2.example.com storm-test-2 > > > > */etc/hosts (node 2)* > > 127.0.1.1 storm-2 > 127.0.0.1 localhost > # Test Storm > xxx.xxx.xxx.xxx stormtest1.example.com storm-test-1 > xxx.xxx.xxx.xxx stormtest2.example.com storm-test-2 > > >