在hdfs中列出文件并将输出附加到文本文件

时间:2018-02-28 16:01:26

标签: linux hadoop hdfs

我想根据条件列出hadoop中的文件,并将输出附加到文本文件中。以下是我正在使用的命令

hadoop fs -ls /path/ | grep 'xxx' | awk '{print $8}' >> /hdfs_path/test.txt

当我执行上述命令时,它会显示以下错误

  

-bash:/hdfs_path/test.txt:没有这样的文件或目录

但该文件存在于目录中。

1 个答案:

答案 0 :(得分:0)

问题是stdout重定向只知道你的本地文件系统,并且对Hadoop一无所知,也无法原生地写入它。您需要坚持使用hadoop fs或更新的hdfs dfs命令进行hdfs交互。

尝试appendToFile作为您的管道命令。

用法:hdfs dfs -ls /your/hdfs/path | grep 'xxx' | hdfs dfs -appendToFile - hdfs://your.hdfs.system/your/hdfs/path/paths.txt

我唯一的另一种选择是将输出保存到本地文件系统,并在您完成后将其上传到HDFS。