In our Linux environment, we're using IP addresses only for all our zookeeper servers. We've observed that without a functioning DNS server, zookeeper peers cannot communicate with one another. We have been able to work around this in the past by putting entries in /etc/hosts for all the zookeeper servers. With entries in /etc/hosts no reverse name lookup is performed and everything works fine.
Has anyone else seen this behavior or can confirm/deny whether zookeeper requires (assumes) a functioning DNS server.. ? I've gone through a lot of the quorum code related to IP addresses, and I thought the culprit might be calls to InetAddress.getByName. But looking at the source code for that (at least in openjdk) they return if the given string is an actual IP address. Other thoughts I had were calls to InetSocketAddress(hostname, port), but that looks like it similarly goes through InetAddress so that should be OK. Anyhow, I'll keep digging into this, but any ideas or help would be appreciated!
