【问题标题】:how to delete all files from a directory structure in a HDFS?如何从 HDFS 的目录结构中删除所有文件?
【发布时间】:2020-08-21 03:02:14
【问题描述】:

我正在清理环境。我想递归执行以下命令,而无需对每个子文件夹进行硬编码。因为我在 HDFS 目录中有数百个子文件夹。

hadoop fs -rm -r /a/b1/c1/d1.txt

hadoop fs -rm -r /a/b2/c2/d2.txt

hadoop fs -rm -r /a/b3/c3/d3.txt

hadoop fs -rm -r /a/bn/cn/dn.txt

我想删除所有文件,但不是目录或子目录。我不确定如何使用递归命令将目录结构保留在 HDFS 中,同时删除其中的所有文件。

【问题讨论】:

  • 不能从命令行保留目录,需要在脚本中迭代目录(Java 最简单)
  • 所以我正在使用 Talend 大数据工具,所以我可以使用 java 但不确定逻辑。
  • 在高层次上,从 Hadoop 导入 FileSystem 对象,然后遍历文件夹并删除(路径,假)...但确保目录保留 hadoop.apache.org/docs/r2.8.2/api/org/apache/hadoop/fs/…跨度>

标签: hadoop recursion hdfs


【解决方案1】:
hadoop fs -ls -R /directory/structure/ | grep "\.json" | awk '{print $8}' | xargs -I{} hadoop fs -rm "{}"

【讨论】:

    猜你喜欢
    • 2015-01-20
    • 1970-01-01
    • 2013-03-16
    • 2012-03-05
    • 1970-01-01
    • 2013-04-13
    • 2017-05-13
    • 2016-08-24
    • 2016-03-12
    相关资源
    最近更新 更多