HDFS 如何提高java.util.zip.GZIPInputStream解压缩一个大的.gz文件的性能?

ttp71kqs  于 2022-12-09  发布在  HDFS
关注(0)|答案(1)|浏览(274)

我试图解压缩一个非常大的.gz文件在java约50 MB,然后将其传输到Hadoop文件系统.解压缩后,文件大小变成20 GB.它需要超过5分钟来完成这项工作.

protected void write(BufferedInputStream bis, Path outputPath, FileSystem hdfs) throws IOException 
{
        BufferedOutputStream bos = new BufferedOutputStream(hdfs.create(outputPath));
        IOUtils.copyBytes(bis, bos, 8*1024);
}

即使在使用缓冲I/O流之后,解压缩和传输文件也需要很长时间。
Hadoop是否导致文件传输速度变慢或GZIPInputStream速度变慢?

50few1ms

50few1ms1#

写20Gb * 会 * 花时间。如果你在300秒内完成,你仍然可以每秒写70Mb以上。
你可能只是达到了平台的极限。
如果你重写你的处理代码来读取压缩的文件,这可能会有帮助。

相关问题