hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Steve Loughran (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HADOOP-16082) FsShell ls: Add option -i to print inode id
Date Mon, 04 Feb 2019 18:24:00 GMT

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

Steve Loughran commented on HADOOP-16082:

bq. It works but this seems more like a hack.

no, it's allowing subclasses of a filestatus to display more information. For example, for
S3AFileStatus, I could display object version markers or encryption headers. We do that with
TokenIdentifer already.

I'm going to be honest, I'll probably -1 any changes which add new changes to the base filestatus
fields. it's just too sensitive a data structure. So embracing toString() is good. The one
issue to consider is whether to add an explicit PrintableString accessor method ( think some
other classes already do this), with a guarantee that this string has stability...ie. we know
it is part of the public API of the shell, and people have to be careful about making changes
which can break code reading it

> 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
> 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

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

View raw message