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

Colin Patrick McCabe commented on HADOOP-10725:
-----------------------------------------------

bq. (hadoop-native-core/src/main/native/fs/fs.c) Pull this out into a separate 
function? Seems like an operation that will have to be done frequently.

This is a bit of a special case just for the connection URI.  I guess the issue 
is that you have people connecting with stuff like "localhost:8020", which 
isn't technically a well-formed URI, but which we sort of have to handle (by 
looking at it as authority=localhost, port=8020).  On the other hand, when 
someone gives you a path that looks like "myfile:123", you just want to parse 
it with the standard URI parsing code.  We might need more massaging for files 
with colons in them later, but it's a bit of a grey area (see HDFS-13) so I'd 
like to avoid dealing with it for now.  For now, I'd like to keep this hack for 
the connection uri, but not for others.

bq. (hadoop-hdfs-project/hadoop-hdfs/src/main/native/libhdfs/hdfs.c) Should 
precedence be given to the explicitly defined "port" member or the pre-existing 
port in the URI? It seems like an explicit definition in the builder should 
take precedence?

So there are three options:
1. fail with error message (current behavior in trunk)
2. hdfsBuilderSetNameNodePort wins if set
3. URI port wins hdfsBuilderSetNameNodePort if set

#2 is hard to implement for jniFS.  If you're given a URI such as 
hdfs://server:123/foo/bar, you'd have to replace 123 with whatever port you 
liked through string operations, prior to sending along the URI to the java 
code.

I wish we had never added {{hdfsBuilderSetNameNodePort}}... it's definitely 
superfluous, since the port can be in the URI.  Maybe we should just stick with 
option #1 for now and error out when there is a conflict.

bq. (hadoop-native-core/src/main/native/ndfs/ndfs.c) Is this how the previous 
HDFS clients worked? Using the previous seen filename won't work if the file 
has been removed. Just curious...

Yes, this is how the Java code works.  I don't think there's an issue with the 
previous filename getting removed, either.  Doing a listStatus with a filename 
just means that you want filenames that sort after that filename, not that you 
necessarily think there is such a filename.

bq. (hadoop-native-core/src/main/native/jni/jnifs.c) This code segment appears 
to be exactly the same as 
hadoop-hdfs-project/hadoop-hdfs/src/main/native/libhdfs/hdfs.c. Maybe a utility 
function would be useful?

The src/main/native/libhdfs directory is going away, to be replaced by the 
jnifs/ directory.  I haven't done that yet, but it's just an svn delete, not a 
very interesting patch.

> Implement listStatus and getFileInfo in the native client
> ---------------------------------------------------------
>
>                 Key: HADOOP-10725
>                 URL: https://issues.apache.org/jira/browse/HADOOP-10725
>             Project: Hadoop Common
>          Issue Type: Sub-task
>          Components: native
>    Affects Versions: HADOOP-10388
>            Reporter: Colin Patrick McCabe
>            Assignee: Colin Patrick McCabe
>         Attachments: HADOOP-10725-pnative.001.patch, 
> HADOOP-10725-pnative.002.patch
>
>
> Implement listStatus and getFileInfo in the native client.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to