hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Enis Soztutar (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-12706) Support multiple port numbers in ZK quorum string
Date Wed, 04 Mar 2015 03:43:05 GMT

     [ https://issues.apache.org/jira/browse/HBASE-12706?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Enis Soztutar updated HBASE-12706:
    Attachment: hbase-12706-alternate.patch

[~syuanjiang] I was thinking about the multi port approach in clusterKey again, and I think
we can simplify a little bit more (I was mentioning this in one of the RB comments as well).
Right now, with v2 patch we support cluster keys in format: {{quorum:clientPort:znode}} format.
Quorum can contain client ports or not, and if not, we use the clientPort by default. However,
this format makes the cluster key confusing if the quorum already contains the ports, which
makes clientPort totally useless. 

I was thinking supporting only two formats: 
Old way: {{s1,s2,s3:clientPort:znode}} OR {{s1:clientPort:znode}} 
New way : {{s1:p1,s2:p2,s3:p3:/hbase}}. Notice that the difference is we do not actually have
an extra port. I think in the patch, you support parsing both of these formats, but we sometimes
generate the clusterKey from the configuration (for example for setting up replication). In
those cases, we will use generate the cluster key in format {{s1:p1,s2:p2,s3:p3:p3:/hbase}}.
I've attached a patch (which only have little changes to your patch) which should do what
I was talking about. What do you think? 

> Support multiple port numbers in ZK quorum string
> -------------------------------------------------
>                 Key: HBASE-12706
>                 URL: https://issues.apache.org/jira/browse/HBASE-12706
>             Project: HBase
>          Issue Type: Improvement
>    Affects Versions: 1.0.0, 2.0.0
>            Reporter: Stephen Yuan Jiang
>            Assignee: Stephen Yuan Jiang
>            Priority: Critical
>             Fix For: 2.0.0, 1.1.0
>         Attachments: HBASE-12706.v1-branch-1.patch, HBASE-12706.v2-master.patch, hbase-12706-alternate.patch
> HBase does not allow the zk quorum string to contain port numbers in this format:
> {noformat}
> hostname1:port1,hostname2:port2,hostname3:port3
> {noformat}
> Instead it expects the string to be in this format:
> {noformat}
> hostname1,hostname2,hostname3:port3
> {noformat}
> And port 3 is used for all the client ports. We should flex the parsing so that both
forms are accepted.
> A sample exception:
> {code}
> java.io.IOException: Cluster key passed host1:2181,host2:2181,host3:2181,host4:2181,host5:2181:2181:/hbase
is invalid, the format should be:hbase.zookeeper.quorum:hbase.zookeeper.client.port:zookeeper.znode.parent
> 	at org.apache.hadoop.hbase.zookeeper.ZKUtil.transformClusterKey(ZKUtil.java:403)
> 	at org.apache.hadoop.hbase.zookeeper.ZKUtil.applyClusterKeyToConf(ZKUtil.java:386)
> 	at org.apache.hadoop.hbase.replication.ReplicationPeersZKImpl.getPeerConf(ReplicationPeersZKImpl.java:304)
> 	at org.apache.hadoop.hbase.replication.ReplicationPeersZKImpl.createPeer(ReplicationPeersZKImpl.java:435)
> {code}

This message was sent by Atlassian JIRA

View raw message