Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何使用hadoop打印文件树?_Linux_Shell_Hadoop_Command - Fatal编程技术网

Linux 如何使用hadoop打印文件树?

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中打印它。从技术上讲,如果您真的想要这样做(尽管我不知道您为什么想要这

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

例如,我们可以在任何*nix系统中键入“tree”,并给出如下结果:

[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