Linux 如何使用hadoop打印文件树?
我是HDFS和*nix的新手,我只是好奇,如何在hadoop中打印文件树 例如,我们可以在任何*nix系统中键入“tree”,并给出如下结果:Linux 如何使用hadoop打印文件树?,linux,shell,hadoop,command,Linux,Shell,Hadoop,Command,我是HDFS和*nix的新手,我只是好奇,如何在hadoop中打印文件树 例如,我们可以在任何*nix系统中键入“tree”,并给出如下结果: [admin~]$tree . ├── backup_snapshot.sh ├── project │ ├── doc │ │ └── README │ ├── src .... 这是非常清楚的输出,但由于HDFS不完全符合POSIX,因此我不确定如何在hadoop中打印它。从技术上讲,如果您真的想要这样做(尽管我不知道您为什么想要这
[admin~]$tree
.
├── backup_snapshot.sh
├── project
│ ├── doc
│ │ └── README
│ ├── src
....
这是非常清楚的输出,但由于HDFS不完全符合POSIX,因此我不确定如何在hadoop中打印它。从技术上讲,如果您真的想要这样做(尽管我不知道您为什么想要这样做,除了调试/可视化/娱乐目的),您可以-有两种实现可用。这将为您提供一个目录,您可以运行您最喜欢的“树”可视化工具或您习惯于使用普通文件系统的任何工具。基于此,您可以提出一种类似于树的表示形式,例如:
hadoop fs -lsr /mydir | awk '{print $8}' | \
sed -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'
刚刚创建了一个简单的项目,它就是这样做的:这是非常愚蠢的,但我想在awk中做,所以我们开始:
hadoop fs-ls-R/mydir{print$8}}awk'{print$8}'awk-F/'{printf'.-”(I=3;I更新版本(避免弃用警告):hdfs-ls-R/mydir awk'{print$8}sed-e/^-]*\//--/g'-e's/^/'-e's/-/|/'
我们在机器上安装了hdfs作为设备。如果在安装了hdfs的树结构中有大文件/dir,则Tree命令的运行速度非常慢。这正是我说它只能用于调试/可视化目的的原因…如linux命令Tree