[
https://issues.apache.org/jira/browse/DRILL-4543?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15216514#comment-15216514
]
Paul Rogers commented on DRILL-4543:
------------------------------------
Thanks, Jacques. I see my confusion. When using the ZK client, I see the host
name, but ports appear as "noise". They are encoded as a Protobuf block and are
thus visible only to Drill code (or other code that knows how to decode the
Protobuf format.)
So, let me rephrase the port suggestion: store ports in an easily readable
format such as plain text:
drill://host-name:123:456:789
Or, if ZK allows it (can auto remove a subtree as well as a single node), as
children of the znode:
<drill bit id xyz>
- host-name: my-host
- user-port: 123
- data-port: 456
- ...
- memory-mb: 128
- cores: 5
> Advertise Drill-bit ports, status, capabilities in ZooKeeper
> ------------------------------------------------------------
>
> Key: DRILL-4543
> URL: https://issues.apache.org/jira/browse/DRILL-4543
> Project: Apache Drill
> Issue Type: Improvement
> Components: Server
> Reporter: Paul Rogers
> Fix For: 2.0.0
>
>
> Today Drill uses ZooKeeper (ZK) to advertise the existence of a Drill-bit,
> providing just the host name/IP Address of the Drill-bit. All other
> information (ports, status, capabilities) are assumed to be the same across
> all Drill-bits in the cluster as specified in the Drill config file.
> Moving forward, as Drill becomes more sophisticated, Drill should advertise
> the specifics of each Drill-bit so that one Drill bit can differ from another.
> For example, when running on YARN, we need a way for Drill to gracefully shut
> down. Advertising a status of Ready or Unavailable will help. Ready is the
> normal state. Unavailable means the Drill-bit will finish in-flight queries,
> but won't accept new ones. (The actual status is a separate enhancement.)
> In a YARN cluster, Drill should take advantage of machines with more memory,
> but live with machines with less. (Perhaps some are newer, some are older or
> more heavily loaded.) Drill should use ZK to identify its available memory
> and CPUs so that the planner can use them. (Use of the info is a separate
> enhancement.)
> There may be times when two drill bits run on a single machine. If so, they
> must use separate ports. So, each Drill-bit should advertise its ports in ZK.
> For backward compatibility, the information is optional; if not present, the
> receiver should assume the information defaults to that in the config file.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)