我是 HDFS 和 *nix 的新手,我只是好奇,如何在 hadoop 中打印文件树?
例如,我们可以在任何 *nix 系统中输入“tree”,然后给我们这样的结果:
[admin~]$tree
.
├── backup_snapshot.sh
├── project
│ ├── doc
│ │ └── README
│ ├── src
....
这是非常清楚的输出,但由于 HDFS 不完全符合 POSIX 标准,所以我不确定如何在 hadoop 中打印它。
基于http://en.wikipedia.org/wiki/Tree_(Unix),您可以提出类似树的表示形式,例如:
hadoop fs -lsr /mydir | awk '{print $8}' | \
sed -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'
刚刚创建了一个简单的项目来做到这一点:http: //github.com/trovit/hdfstree
从技术上讲,如果你真的想要那样(虽然我不知道你为什么想要,除了调试/可视化/娱乐目的),你可以使用 fuse 将 HDFS 挂载为普通文件系统- 有几个可用的实现。这将为您提供一个目录,您可以在该目录中运行您最喜欢的“树”可视化工具或您习惯于使用普通文件系统的任何内容。