You could still use Harsh's solution programatically, or maybe an
easier way is to use HAUtil.getAddressOfActive() [1] for that? Ideally
we should not need to query ZK directly.

[1] 
https://github.com/c9n/hadoop/blob/master/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/HAUtil.java#L341
Em sex, 14 de set de 2018 às 09:00, Francisco de Freitas
<[email protected]> escreveu:
>
> Hi Harsh, thanks for your message.
>
> The thing is that I need to find that out via API programatically so that's 
> why I gave the zkCli command as an example. I'm using this Go Lib 
> (github.com/samuel/go-zookeeper/zk) and I get the same result.
>
> On Fri, 14 Sep 2018 at 02:22 Harsh J <[email protected]> wrote:
>>
>> The value you are looking at directly in ZooKeeper is in a
>> serialized/encoded form. Those are not separator characters but more
>> likely an encoded integer binary value that your terminal is
>> interpreting as a printable character.
>>
>> The standard way to find the active NameNode is to use the 'hdfs
>> haadmin -getAllServiceState' command:
>>
>> [hdfs@host ~]# hdfs haadmin -getAllServiceState
>> host1.com:8022                  standby
>> host2.com:8022                  active
>>
>> You can then extract out just the active NameNode hostname:
>>
>> [hdfs@host ~]# hdfs haadmin -getAllServiceState | grep active | awk
>> -F: '{ print $1; }'
>> host1.com
>> On Thu, Sep 13, 2018 at 9:39 PM Francisco de Freitas
>> <[email protected]> wrote:
>> >
>> > When querying different HDFS clusters I get different separators (don't 
>> > really know if they're actually separators).
>> >
>> > From zkCli.sh on different clusters, running the following I get:
>> >
>> > cmd: get /hadoop-ha/clusterX/ActiveBreadCrumb
>> >
>> > Cluster1 (comma):
>> > cluster1active-nn1,active-nn1.example.com �>(�>
>> >
>> > Cluster2 (single double quote):
>> > cluster2active-nn2"active-nn2.example.com �>(�>
>> >
>> > Cluster3 (dollar sign):
>> > cluster3active-nn3$active-nn3.example.com �>(�>
>> >
>> > How can I effectively write a generic code deployed on different HDFS 
>> > clusters to effectively find out which is the active NN from querying ZK?
>> >
>> > Or am I doing something wrong? Is the behavior above expected?
>>
>>
>>
>> --
>> Harsh J

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to