Use multiple ZooKeeper services

Only services that are not dependent can use different ZooKeeper services.

Cloudera Manager requires dependent services within Cloudera Runtime to use the same ZooKeeper service. If you configure dependent Cloudera Runtime services to use different ZooKeeper services, Cloudera Manager reports the following error:
com.cloudera.cmf.command.CmdExecException:java.lang.RuntimeException: java.lang.IllegalStateException: Assumption violated:
getAllDependencies returned multiple distinct services of the same type
at line 120
in com.cloudera.cmf.command.flow.SeqFlowCmd run()

Because of a known limitation in Cloudera Manager, Cloudera Runtime services that are depending on each other can not use different ZooKeeper services. For example, Kafka does not depend on any services other than ZooKeeper, so Kafka can use one ZooKeeper cluster and the rest of the Cloudera Runtime services can use another one. At the same time, since Ranger also depends on ZooKeeper, if Kafka gets configured to use Ranger, then both Kafka and Ranger must use the same ZooKeeper cluster.