
先给50分,问题解决再给200分。
希望大家帮忙
A1.该索引叫FsImage, 但没有对外提供api, 参考 附录的链接1
整个文件系统的名饥侍字空间,包括数据块到文件的映射、文件的属核肢厅性等,都存储在一个称为FsImage的文件中,这个文件也是放在Namenode所在的本地文件系统上。
A2. FS Shell, 详细请参考链接2
1)hadoop fs -ls
功能跟shell 的 ls 命令相同
2)hadoop fs -lsr
ls命令的递归版本。类似于Unix中的ls -R。
如果要实现复杂的查找功能,可以考虑用下述方式
hadoop fs -lsr / | awk/sed/grep .....
链改隐接1:FsImage/EditLog的官方说明
http://hadoop.apache.org/common/docs/r0.21.0/cn/hdfs_design.html#%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E5%85%83%E6%95%B0%E6%8D%AE%E7%9A%84%E6%8C%81%E4%B9%85%E5%8C%96
链接2:HDFS shell
http://hadoop.apache.org/common/docs/r0.21.0/cn/hdfs_shell.html#ls
java API:
FileStatus[] status = fs.listStatus(paths);
Path[] listedPaths = FileUtil.stat2Paths(status);
for(Path p : listedPaths) {
System.out.println(p);
}