[ https://issues.apache.org/jira/browse/HADOOP-16082?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16755486#comment-16755486 ]
Siyao Meng commented on HADOOP-16082: ------------------------------------- [~ste...@apache.org] Thanks for the comment. Yeah I'm also feeling that a new property in FileStatus could break (a bunch of) things. I could override toString() in class HdfsLocatedFileStatus and insert HDFS-specific fields like this: {code:java|title=HdfsLocatedFileStatus#toString()} @Override public String toString() { String res = super.toString(); StringBuilder sb = new StringBuilder(); sb.append(res.substring(0, res.length() - 1)); sb.append("; fileId=" + fileId); sb.append(res.substring(res.length() - 1)); return sb.toString(); } {code} It works but this seems more like a hack. [~ajisakaa] Thanks for the suggestion. but the point is it still won't allow me to easily access *fileId* property as long as FileStatus doesn't expose it, since *fileId* is internal to HdfsLocatedFileStatus: {code:java|title=./hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/shell/Stat.java#processPath} @Override protected void processPath(PathData item) throws IOException { FileStatus stat = item.stat; ... {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-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org