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

Manoj Govindassamy commented on HADOOP-14210:
---------------------------------------------

[~ajithshetty]
bq. {code}
-
-          result[i++] = new FileStatus(0, false, 0, 0,
+          boolean isDir=link.isMergeLink;
+          if (link.targetDirLinkList.length == 1) {
+            try {
+              isDir =
+                  link.targetFileSystem.getFileLinkStatus(link.getTargetLink())
+                      .isDirectory();
{code}
LinkMerge / MergeMounts are not supported yet. But, I see your point of 
reaching out to the target filesystem to find if the linked item is indeed a 
directory or not. 

[~xkrogen]
In the context of ViewFileSystem, all the linked entities - be it be Dir or 
File in target filesystem are of type INodeLink. Only the internal directories 
in the ViewFileSystem mount tree are of type INodeDir. So, [~ajithshetty] 
pointed out, ViewFileSystem treats only its internal directories as Dirs and 
all others as linked files. So, the FileStatus[] returned by ViewFileSystem has 
the Dir flag turned off for all the linked Directories in the target filesystem 
making the LS command stop the file tree traversal. 

Given the scale ViewFileSystem could be, returning millions of FileStatus[] 
across all namenodes could be a problem for Clients as well. So, I was assuming 
the intention for {{listStatus}} on ViewFileSystem is to only list the mount 
tree and not the entire world. But, this doesn't go well "ls -R" expectation 
from Clients. [~andrew.wang], any thoughts on the expectation for "ls -R" on 
ViewFileSystem root ?

> Directories are not listed recursively when fs.defaultFs is viewFs
> ------------------------------------------------------------------
>
>                 Key: HADOOP-14210
>                 URL: https://issues.apache.org/jira/browse/HADOOP-14210
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: viewfs
>    Affects Versions: 2.7.0
>            Reporter: Ajith S
>              Labels: viewfs
>         Attachments: HDFS-8413.patch
>
>
> Mount a cluster on client throught viewFs mount table
> Example:
> {quote}
>  <property>
>     <name>fs.defaultFS</name>
>     <value>viewfs:///</value>
>   </property>
>     <property>
>         <name>fs.viewfs.mounttable.default.link./nn1</name>
>         <value>hdfs://ns1/</value>  <!-- HA nameservice -->
>     </property>
>     <property>
>         <name>fs.viewfs.mounttable.default.link./user</name>
>         <value>hdfs://host-72:8020/</value>
>     </property>
>  <property>
> {quote}
> Try to list the files recursively *(hdfs dfs -ls -R / or hadoop fs -ls -R /)* 
> only the parent folders are listed.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

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

Reply via email to