[ 
https://issues.apache.org/jira/browse/HDFS-13248?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16786436#comment-16786436
 ] 

Íñigo Goiri commented on HDFS-13248:
------------------------------------

The idea for {{getBlockLocations()}} would be to get the {{LocatedBlocks}} 
reported from:
{code}
rpcClient.invokeSequential(locations, remoteMethod, LocatedBlocks.class, null);
{code}
And then recreate a new {{LocatedBlocks}} from it sorting the nodes properly.
As I said, a little overdone as it replicates some of the Namenode behavior.

In any case, the proper approach as discussed earlier would be to be able to 
let know the Namenode which is the actual client.
This may require some change/addition to the protocol.

> RBF: Namenode need to choose block location for the client
> ----------------------------------------------------------
>
>                 Key: HDFS-13248
>                 URL: https://issues.apache.org/jira/browse/HDFS-13248
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>            Reporter: Weiwei Wu
>            Assignee: Íñigo Goiri
>            Priority: Major
>         Attachments: HDFS-13248.000.patch, HDFS-13248.001.patch, 
> HDFS-13248.002.patch, HDFS-13248.003.patch, HDFS-13248.004.patch, 
> HDFS-13248.005.patch, clientMachine-call-path.jpeg, debug-info-1.jpeg, 
> debug-info-2.jpeg
>
>
> When execute a put operation via router, the NameNode will choose block 
> location for the router, not for the real client. This will affect the file's 
> locality.
> I think on both NameNode and Router, we should add a new addBlock method, or 
> add a parameter for the current addBlock method, to pass the real client 
> information.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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

Reply via email to