Druid internal communication model


i have some Problems understanding how communication between Nodes is done. Originally i thought everything is done over zK :slight_smile:

According to: http://druid.io/docs/latest/configuration/production-cluster.html there are several Places where Hostname/IP is used. Which of them is actually used for direct communication, and which is used for viewing etc…?

  • Historical: druid.host=#{IP_ADDR}

  • Overlord: druid.host=#{IP_ADDR}

  • Coordinator: druid.host=#{IP_ADDR}

  • MiddleManager: druid.host=#{IP_ADDR}, druid.worker.ip=#{IP_ADDR}

  • Broker: druid.host=#{IP_ADDR}

I have some Problems setting these up in a cluster (with Tranquility) and running into a few Problems that finnagle cant connect to Host etc… So it would be nice to get a better understanding there.

I thought Historical get his information to load/drop segments etc over the zK? in the case of Tranquility it send it data directly to a Worker and therefore needs that IP, but i also had some Problems when the Overlord IP isnt directly reachable.

Is there a overview where and what communication is done over zK and what is direct communication?

a good/deep overview is the white paper http://static.druid.io/docs/druid.pdf

but in nutshell

tranquility will figure out the IPs via ZK. you need to set the proper ZK conf, overlord service name and discovery path

Then Tranquility will push data to middle managers thus you need connectivity between them

Historical/Broker/Coordinator/Overlord/MM nodes need to talk to ZK.

Finally make sure that overlord and coordinator can talk to the meta data (e.g. Mysql)