我想根据条件列出hadoop中的文件,并将输出附加到文本文件中。以下是我正在使用的命令
hadoop fs -ls /path/ | grep 'xxx' | awk '{print $8}' >> /hdfs_path/test.txt
当我执行上述命令时,它会显示以下错误
-bash:/hdfs_path/test.txt:没有这样的文件或目录
但该文件存在于目录中。
答案 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。