You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Siyao Meng (JIRA)" <ji...@apache.org> on 2019/01/29 11:04:00 UTC

[jira] [Comment Edited] (HADOOP-16082) FsShell ls: Add option -i to print inode id

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

Siyao Meng edited comment on HADOOP-16082 at 1/29/19 11:03 AM:
---------------------------------------------------------------

Uploaded patch rev 001 for trunk. Implemented for HDFS. Added unit test TestDFSShell#testLsInodeId() for HDFS. To test it, 
{code:bash|title=hdfs:// supported}
$ hdfs dfs -ls -i /
Found 2 items
16386 drwxr-xr-x   - user1 supergroup          0 2019-01-29 02:56 /d1
16388 drwxr-xr-x   - user1 supergroup          0 2019-01-29 02:56 /d4

$ hdfs dfs -ls -i -R /
16386 drwxr-xr-x   - user1 supergroup          0 2019-01-29 02:56 /d1
16387 drwxr-xr-x   - user1 supergroup          0 2019-01-29 02:56 /d1/d2
16390 -rw-r--r--   2 user1 supergroup        117 2019-01-29 02:56 /d1/d2/f3
16388 drwxr-xr-x   - user1 supergroup          0 2019-01-29 02:56 /d4
16389 drwxr-xr-x   - user1 supergroup          0 2019-01-29 02:56 /d4/d5
{code}

Doesn't support file:// at the moment, will always print inode id 0:
{code:bash|title=file:// not supported yet}
$ hdfs dfs -ls -i file:///usr/
Found 9 items
0 drwxr-xr-x   - root wheel        288 2016-09-26 22:11 file:///usr/X11
0 drwxr-xr-x   - root wheel        288 2016-09-26 22:11 file:///usr/X11R6
0 drwxr-xr-x   - root wheel      31104 2019-01-22 12:42 file:///usr/bin
0 drwxr-xr-x   - root wheel       9728 2019-01-22 12:42 file:///usr/lib
0 drwxr-xr-x   - root wheel       7968 2019-01-22 12:42 file:///usr/libexec
0 drwxr-xr-x   - root wheel        512 2018-11-06 16:01 file:///usr/local
0 drwxr-xr-x   - root wheel       7648 2019-01-22 12:42 file:///usr/sbin
0 drwxr-xr-x   - root wheel       1472 2018-10-19 22:12 file:///usr/share
0 drwxr-xr-x   - root wheel        160 2018-09-20 21:06 file:///usr/standalone
{code}


was (Author: smeng):
Uploaded patch rev 001 for trunk. Implemented for HDFS. Added unit test TestDFSShell#testLsInodeId() for HDFS. To test it, 
{code:bash|title=hdfs:// supported}
$ hdfs dfs -ls -i /
Found 2 items
16386 drwxr-xr-x   - user1 supergroup          0 2019-01-29 02:56 /d1
16388 drwxr-xr-x   - user1 supergroup          0 2019-01-29 02:56 /d4

$ hdfs dfs -ls -i -R /
16386 drwxr-xr-x   - user1 supergroup          0 2019-01-29 02:56 /d1
16387 drwxr-xr-x   - user1 supergroup          0 2019-01-29 02:56 /d1/d2
16390 -rw-r--r--   2 user1 supergroup        117 2019-01-29 02:56 /d1/d2/f3
16388 drwxr-xr-x   - user1 supergroup          0 2019-01-29 02:56 /d4
16389 drwxr-xr-x   - user1 supergroup          0 2019-01-29 02:56 /d4/d5
{code}

Doesn't support file:// at the moment, will always print 0 for fileId / inode id at the moment:
{code:bash|title=file:// not supported yet}
$ hdfs dfs -ls -i file:///usr/
Found 9 items
0 drwxr-xr-x   - root wheel        288 2016-09-26 22:11 file:///usr/X11
0 drwxr-xr-x   - root wheel        288 2016-09-26 22:11 file:///usr/X11R6
0 drwxr-xr-x   - root wheel      31104 2019-01-22 12:42 file:///usr/bin
0 drwxr-xr-x   - root wheel       9728 2019-01-22 12:42 file:///usr/lib
0 drwxr-xr-x   - root wheel       7968 2019-01-22 12:42 file:///usr/libexec
0 drwxr-xr-x   - root wheel        512 2018-11-06 16:01 file:///usr/local
0 drwxr-xr-x   - root wheel       7648 2019-01-22 12:42 file:///usr/sbin
0 drwxr-xr-x   - root wheel       1472 2018-10-19 22:12 file:///usr/share
0 drwxr-xr-x   - root wheel        160 2018-09-20 21:06 file:///usr/standalone
{code}

> FsShell ls: Add option -i to print inode id
> -------------------------------------------
>
>                 Key: HADOOP-16082
>                 URL: https://issues.apache.org/jira/browse/HADOOP-16082
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: common
>    Affects Versions: 3.2.0, 3.1.1
>            Reporter: Siyao Meng
>            Assignee: Siyao Meng
>            Priority: Major
>         Attachments: HADOOP-16082.001.patch
>
>
> When debugging the FSImage corruption issue, I often need to know a file's or directory's inode id. At this moment, the only way to do that is to use OIV tool to dump the FSImage and look up the filename, which is very inefficient.
> Here I propose adding option "-i" in FsShell that prints files' or directories' inode id.
> h2. Implementation
> h3. For hdfs:// (HDFS)
> fileId exists in HdfsLocatedFileStatus, which is already returned to hdfs-client. We just need to print it in Ls#processPath().
> h3. For file:// (Local FS)
> h4. Linux
> Use java.nio.
> h4. Windows
> Windows has the concept of "File ID" which is similar to inode id. It is unique in NTFS and ReFS.
> h3. For other FS
> The fileId entry will be "0" in FileStatus if it is not set. We could either ignore or throw an exception.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-issues-help@hadoop.apache.org