我试图解压缩一个非常大的.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速度变慢?
1条答案
按热度按时间50few1ms1#
写20Gb * 会 * 花时间。如果你在300秒内完成,你仍然可以每秒写70Mb以上。
你可能只是达到了平台的极限。
如果你重写你的处理代码来读取压缩的文件,这可能会有帮助。