Thanks for summarizing this - ok, so I see the setup.

I'm wondering what the implications are: So - let's say you decide to
add more zookeeper nodes or to "replace" a zookeeper node due to
failure or whatever.

1) Addition case:
a) You would add 6.zookeeper, 7.zookeeper to hbase-site.xml and bounce
cluster. 6 or 7 could become the leader, potentially
b) You would add 6 and 7 to roundrobindnsentry
c) But - between steps a & b ... would there be any issues if 6 and 7
are not seen by the clients?

2) Replacement case:
a) You replace 5.zookeeper with a new hardware and replace the
5.zookeeper dns entry with this new IP.
b) You update roundrobindnsentry replacing 5.zookeeper's IP address.
c) Between a & b ... would there be any issues if cluster writes to
new node, but client can't see it?

I'm guessing that as long as the quorum is met, clients should be ok
with the above partial zk view. Would it still be ok with one of these
new nodes happen to take the leader role?

We were also planning to setup dns entries for individual zk nodes (so
that we can replace /re-IP as needed), but my thought was that clients
need view of full zk to maintain quorum (even during that window)

Thanks,
--Suraj


On Sun, Dec 4, 2011 at 7:09 AM, Rita <[email protected]> wrote:
> To add,
>
> The correct way to setup your client/application is like this
>
>
> <?xml version="1.0"?>
> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
> <configuration>
>  <property>
>    <name>hbase.zookeeper.quorum</name>
>    <value>roundrobindnsdnsentry</value>
>    <description>The directory shared by region servers.
>    </description>
>  </property>
> </configuration>
>
>
> Configuration config = HBaseConfiguration.create();
> config.set("hbase.zookeeper.quorum", "roundrobindnsentry");  // Here
> we are running zookeeper locally
>
>
> On Sun, Dec 4, 2011 at 10:03 AM, Rita <[email protected]> wrote:
>
>> Thanks for the nice responses and advice.
>>
>> To sum up this thread
>>
>> This will not work,
>>
>> $ host roundrobindnsentry
>> roundrobindnsentry has address 192.168.0.2
>> roundrobindnsentry has address 192.168.0.5
>> roundrobindnsentry has address 192.168.0.6
>>
>>
>> $ host roundrobindnsentry
>> roundrobindnsentry has address 192.168.0.5
>> roundrobindnsentry has address 192.168.0.6
>> roundrobindnsentry has address 192.168.0.2
>>
>>
>> Ín your hbase-site.xml
>>
>> <property>
>>       <name>hbase.zookeeper.quorum</name>
>>       <value>roundrobindnsentry</value>
>>       </description>
>>     </property>
>>
>>
>> This will not work because when you start up the hbase cluster it will
>> complain the zookeeper is already running. Basically it will get confused
>> because of the round robin DNS entries.
>>
>> However,  this WILL work if in your application you set, roundrobingdns
>> entry.
>>
>>
>>
>>
>>
>>
>>
>> On Sat, Dec 3, 2011 at 8:09 PM, Shrijeet Paliwal 
>> <[email protected]>wrote:
>>
>>> >>Now any HBase client that needs to connect to zookeeper, can talk to
>>> quorum via "zookeeper-quorum.example.com"
>>>
>>> Must add the reason above works is zookeeper uses
>>>  InetAddress.getAllByName
>>> <
>>> http://docs.oracle.com/javase/1.3/docs/api/java/net/InetAddress.html#getAllByName(java.lang.String)
>>> >to
>>> build the server address list
>>>
>>> On Sat, Dec 3, 2011 at 5:06 PM, Shrijeet Paliwal <[email protected]
>>> >wrote:
>>>
>>> > Suraj,
>>> > Combine what J-D & David said. For example in our case
>>> >
>>> >    1. We let HBase manage zookeeper
>>> >    2. Set the config in hbase-site.xml the way David mentioned
>>> >    :
>>> <value>0.zookeeper,1.zookeeper,2.zookeeper,3.zookeeper,4.zookeeper</value>
>>> >    3. Also have a DNS entry "zookeeper-quorum.example.com" with
>>> multiple
>>> >    IPs (all mentioned above) resolving to this entry
>>> >    4. Now any HBase client that needs to connect to zookeeper, can talk
>>> >    to quorum via "zookeeper-quorum.example.com"
>>> >
>>> > One might think why we cant have hbase-site use ""
>>> > zookeeper-quorum.example.com" as well. My understanding is when you
>>> start
>>> > a zookeeper daemon on a server, the hbase managed zookeeper service will
>>> > fetch the the default host name using hadoop's DNS.getDefaultHost
>>> method.
>>> > The hostname returned may or may not find a match in the server list you
>>> > mentioned in hbase-site.xml. If does not match you get the error
>>> mentioned
>>> > here http://wiki.apache.org/hadoop/Hbase/Troubleshooting#A9.
>>> >
>>> > For example, in our case zookeeper host has two hostnames associated
>>> with
>>> > default ethernet interface. First name is host.domain.com and second is
>>> > the special DNS entry I talked about in (4). The DNS.getDefaultHost
>>> returns
>>> > host.domain.com and zookeeper fails to start.
>>> >
>>> > I would be interested if some one has a different way of handling the
>>> > situation I described.
>>> >
>>> > On Sat, Dec 3, 2011 at 4:45 PM, Suraj Varma <[email protected]>
>>> wrote:
>>> >
>>> >> Yes - this makes sense. But, I thought what Rita suggested was a
>>> >> single appquorum dns entry ... which was surprising.
>>> >>
>>> >> Hence my question.
>>> >> --Suraj
>>> >>
>>> >> On Sat, Dec 3, 2011 at 10:40 AM, Dave Barr <[email protected]>
>>> wrote:
>>> >> > What we do is make N.zookeeper.$DC.$DOMAIN entries in DNS.  We have
>>> >> > one ZK cluster per DC.  Our configs then just point to
>>> >> >
>>> >> >
>>> >>
>>> <value>0.zookeeper,1.zookeeper,2.zookeeper,3.zookeeper,4.zookeeper</value>
>>> >> >
>>> >> > --Dave
>>> >> >
>>> >> > On Sat, Dec 3, 2011 at 6:15 AM, Suraj Varma <[email protected]>
>>> >> wrote:
>>> >> >> J-D:
>>> >> >> Did you mean that a _single_ dns entry returns all five ips
>>> belonging
>>> >> >> to individual zk nodes?
>>> >> >>
>>> >> >> Is this used only by "clients" ... or even within the cluster?
>>> >> >> And ... the zk nodes self-identify by IP ... and is this how region
>>> >> >> server nodes reach out specifically to the "leader" zk node?
>>> >> >> --Suraj
>>> >> >>
>>> >> >>
>>> >> >> On Wed, Nov 30, 2011 at 4:14 PM, Jean-Daniel Cryans <
>>> >> [email protected]> wrote:
>>> >> >>> It's pretty much what we do, works well.
>>> >> >>>
>>> >> >>> J-D
>>> >> >>>
>>> >> >>> On Wed, Nov 30, 2011 at 3:49 PM, Rita <[email protected]>
>>> wrote:
>>> >> >>>> Hello,
>>> >> >>>>
>>> >> >>>>
>>> >> >>>> Previously, I assigned 5 servers as part of the zookeeper quorum.
>>> >> >>>> Everything works fine but I was hard coding these 5 servers
>>> >> everywhere and
>>> >> >>>> I was thinking of creating a dns entry called appquorum which will
>>> >> always
>>> >> >>>> return these 5 servers IPs.
>>> >> >>>>
>>> >> >>>> Any thoughts about this?
>>> >> >>>>
>>> >> >>>>
>>> >> >>>>
>>> >> >>>> --
>>> >> >>>> --- Get your facts first, then you can distort them as you
>>> please.--
>>> >>
>>> >
>>> >
>>>
>>
>>
>>
>> --
>> --- Get your facts first, then you can distort them as you please.--
>>
>
>
>
> --
> --- Get your facts first, then you can distort them as you please.--

Reply via email to