Details
Description
We don't currently have a way to uniquely identify an HBase cluster, apart for where it's stored in HDFS or configuration of the ZooKeeper quorum managing it. It would be generally useful to be able to identify a cluster via API.
The proposal here is pretty simple:
- When master initializes the filesystem, generate a globally unique ID and store in /hbase/hbase.id
- For existing clusters, generate hbase.id on master startup if it does not exist
- Include unique ID in ClusterStatus returned from master
For token authentication, this will be required to allow selecting the correct token to pass to a cluster when a single client is communicating to more than one HBase instance.
Chatting with J-D, replication stores it's own cluster id in place with each HLog edit, so requires as small as possible an identifier, but I think we could automate a mapping from unique cluster ID -> short ID if we had the unique ID available.