There's some Maven magic going on here that I don't understand: https://gist.github.com/mackrorysd/61c689f04c3595bcda9c256ec6b2da75
On line 2 of the gist, you can see me checking which ZooKeeper artifacts get picked up when running dependency:tree with the ZooKeeper version overridden with -Dzookeeper.version. It's all 3.5.3-beta, the version I'm trying to override it to. On line 84 of the gist, you can see me doing a clean build of Hadoop with the same ZooKeeper version, but at the end it appears that hadoop-yarn-server-resourcemanager is sometimes depending on 3.4.9 (the version originally in the POM) and other times 3.5.3-beta. I can't seem to work around that, or even explain it. Anybody have ideas?