[
https://issues.apache.org/jira/browse/HDFS-6995?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14141883#comment-14141883
]
Vinayakumar B commented on HDFS-6995:
-------------------------------------
Hi [~umamaheswararao], thanks for reviewing.
Scenario mentioned is very much possible.
It was throwing NPE because, target selection was happened even though there
was no node with "/default-rack".
This is because, {{clusterMap.countNumOfAvailableNodes(
scope, excludedNodes)}} was returning 1, for the scope of
"/default-rack", it should return 0 as no nodes available with "/default-rack".
I have posted a patch for the same in HADOOP-10131, along with one more
scenario where {{NetworkTopology#countNumOfAvailableNodes(..)}} was returning
wrong value.
Till now this API was not called as writer was considered as null if no DN
exists in clients machine.
Please review HADOOP-10131 patch, once thats in, then a remote rack will be
chosen in the above mentioned case.
> Block should be placed in the client's 'rack-local' node if 'client-local'
> node is not available
> ------------------------------------------------------------------------------------------------
>
> Key: HDFS-6995
> URL: https://issues.apache.org/jira/browse/HDFS-6995
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: namenode
> Affects Versions: 2.5.0
> Reporter: Vinayakumar B
> Assignee: Vinayakumar B
> Attachments: HDFS-6995-001.patch, HDFS-6995-002.patch,
> HDFS-6995-003.patch, HDFS-6995-004.patch
>
>
> HDFS cluster is rack aware.
> Client is in different node than of datanode,
> but Same rack contains one or more datanodes.
> In this case first preference should be given to select 'rack-local' node.
> Currently, since no Node in clusterMap corresponds to client's location,
> blockplacement policy choosing a *random* node as local node and proceeding
> for further placements.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)