将文件解压为上传到 HDFS

Decompressing file as uploading to HDFS

我有数据要上传到 HDFS

data文件夹是多层的,但是最里面的目录只有多个.gz文件。

文件夹压缩后约250GB,不知道里面有多少gz文件

我想把它上传到 HDFS,但它们应该被解压。

有没有一种方法可以通过单个 hadoop fs -put 命令实现此目的? 还是写一个脚本文件一个一个解压上传到hdfs是唯一的办法?

我认为您只能通过解压缩每个文件来使用脚本文件来做到这一点。但是你可以用管道减少脚本,像这样:

for file in $( ls ); do
    echo Uncompressing and putting $file
    gunzip -c $file | hdfs dfs -put - "/hdfs-dir/$file.txt"
done