如何用hadoop打印文件树?

时间:2013-01-25 04:17:04

标签: linux shell hadoop command

我是HDFS和* nix中的新鸟,我只是好奇,如何在hadoop中打印文件树?

例如,我们可以在任何* nix系统中键入“tree”,并给我们一个类似的结果:

[admin~]$tree
.
├── backup_snapshot.sh
├── project
│   ├── doc
│   │   └── README
│   ├── src
....

输出非常清楚,但由于HDFS不完全符合POSIX标准,所以我不知道如何在hadoop中打印它。

3 个答案:

答案 0 :(得分:14)

基于http://en.wikipedia.org/wiki/Tree_(Unix),您可以提出类似于树的表示,例如:

hadoop fs -lsr /mydir | awk '{print $8}' | \
sed -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'

答案 1 :(得分:2)

刚刚创建了一个简单的项目:http://github.com/trovit/hdfstree

答案 2 :(得分:0)

从技术上讲,如果你真的想要那个(虽然我不知道你为什么要这样做,除了调试/可视化/娱乐目的),你可以mount HDFS as normal filesystem using fuse - 有一些实现可用。这将为您提供一个目录,您可以运行您喜欢的“树”可视化工具或您习惯使用的普通文件系统。