如何拆分gzip文件并转移到hadoop hdfs?

时间:2018-01-17 01:22:05

标签: split gzip

我有200个1GB gzip压缩文件

- A.1.gz
- A.2.gz
...
- A.200.gz

因为我使用的是不支持“lzo”格式的hadoop cluter,我正在考虑以下两个选项:

  
      
  1. 解压缩每个文件并将其拆分为64Mb纯文本文件并将其复制到hdfs
  2.   
  3. 将上面的纯文本文件gzip并将它们放到hdfs
  4.   

是否有一个shell命令可以在一行中完成这项工作?

- zcat *.gz | split -l 200000 - B_art 
- hadoop -fs -put B_part* /data/folder

如果本地目录不够大,我必须逐个处理这些文件。 处理此问题的最佳方法是什么?

我正在使用此脚本

SRC="./test"
TGT="Target/test"
mkdir $SRC/temp

for file in $SRC/*.gz
do
        fname=`basename $file`
        echo $fname
        fname2=${fname/.txt.gz/_part_}
        echo $fname2
        zcat $file | split -l 200000 $SRC/temp/$fname2
        hadoop fs -put $SRC/temp/$fname2* $TGT/
        rm $SRC/Temp/$fname2*
done

0 个答案:

没有答案