[
https://issues.apache.org/jira/browse/HDFS-16699?focusedWorklogId=796834&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-796834
]
ASF GitHub Bot logged work on HDFS-16699:
-----------------------------------------
Author: ASF GitHub Bot
Created on: 01/Aug/22 09:43
Start Date: 01/Aug/22 09:43
Worklog Time Spent: 10m
Work Description: SanQiMax commented on PR #4663:
URL: https://github.com/apache/hadoop/pull/4663#issuecomment-1200967858
> @SanQiMax Thank you very much for your contribution, but in JIRA, your
description needs to be clearer, you can refer to @ZanderXu's Jira description,
he wrote very well.
The router will obtain all nn lists (randomly sorted) before forwarding a
read request each time. If it is a write request, it will obtain the Active and
Standby、OBserver nn lists, and access them in turn until the request is
processed successfully.
From the theoretical analysis, if the router processes the read request and
the first one in the nn list is the observer nn, and the observer nn throw a
ConnectTimeoutException to the router when processing the request, and the
second time it will try to connect to the second nn from the nn list , if the
second nn connects observer nn and returns successfully, the logic shown in
the following figure will be executed, and the state of nn will be set to
ACTIVE, then if the write request is processed, the router will obtain the list
of active states (at this time it may be It will get multiple NNs in the ACTIVE
state), and the request will be forwarded to the slave NN.
This logic will be abnormal when there are only active and standby nn in
the cluster. Even if the status of standby nn is set to ACTIVE and the request
is transferred to standby nn, the standby nn will not process read and write
requests, and then the router will Forwarded to the Active nn for processing;
if the observer nn is added, the state of the slave nn may be set to ACTIVE
Issue Time Tracking
-------------------
Worklog Id: (was: 796834)
Time Spent: 1h (was: 50m)
> RBF: Router Update Observer NameNode state to Active when failover because of
> sockeTimeOut Exception
> ------------------------------------------------------------------------------------------------------
>
> Key: HDFS-16699
> URL: https://issues.apache.org/jira/browse/HDFS-16699
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: rbf
> Affects Versions: 3.1.1
> Reporter: ShuangQi Xia
> Priority: Major
> Labels: pull-request-available
> Time Spent: 1h
> Remaining Estimate: 0h
>
> we found that ,router print logs that indicate Observer NameNode state
> changed to active always,here's the log
> 2022-03-18 11:00:54,589 | INFO | NamenodeHeartbeatService hacluster 11342-0
> | NN registration state has changed:
> test101:25019->hacluster:11342:test103:25000-ACTIVE ->
> test102:25019->hacluster:11342::test103:25000-OBSERVER |
> MembershipStoreImpl.java:170
> for code ,I fount that , when router request failed for some reson ,like
> sockettimeout Excetion , failover to Observer NameNode,will update it's
> state to Active
> if (failover) {
> // Success on alternate server, update
> InetSocketAddress address = client.getAddress();
> namenodeResolver.updateActiveNamenode(nsId, address);
> }
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]