我有要上传到HDFS的数据
数据文件夹是多层的,但最里面的目录仅包含多个.gz文件。
文件夹压缩后约为250 GB,我不知道其中有多少个gz文件。
我想将其上传到HDFS,但应将其解压缩。
有没有一种方法可以通过单个hadoop fs -put
命令来实现?
还是编写脚本文件一个一个地解压缩并上传到hdfs的唯一方法?
答案 0 :(得分:0)
我认为您只能通过解压缩每个文件来使用脚本文件来执行此操作。但是您可以使用管道来简化脚本,如下所示:
for file in $( ls ); do
echo Uncompressing and putting $file
gunzip -c $file | hdfs dfs -put - "/hdfs-dir/$file.txt"
done