Optimization 在Hadoop中使用GZip输入文件时如何优化S3的读取性能

Optimization 在Hadoop中使用GZip输入文件时如何优化S3的读取性能,optimization,hadoop,amazon-s3,hadoop-streaming,Optimization,Hadoop,Amazon S3,Hadoop Streaming,在Hadoop流媒体工作的第一步,我的性能非常糟糕:在我看来,映射程序从S3读取的数据大约为40KB/s-50KB/s 从S3读取约100MB的数据需要一个多小时 数据的存储方式:S3存储桶中有数千个~5-10KB GZip文件 我最近解压缩了一个100MB样本数据集的所有文件,并将其作为一个GZip文件上传到同一个S3存储桶中,我的任务在3分钟内完成(与之前的1小时运行相比) 受到鼓励,我解压缩了样本2GB数据集的所有文件,并将其作为单个GZip文件上传到同一个S3存储桶中,我的任务再次花费了

在Hadoop流媒体工作的第一步,我的性能非常糟糕:在我看来,映射程序从S3读取的数据大约为40KB/s-50KB/s

从S3读取约100MB的数据需要一个多小时

数据的存储方式:S3存储桶中有数千个~5-10KB GZip文件

我最近解压缩了一个100MB样本数据集的所有文件,并将其作为一个GZip文件上传到同一个S3存储桶中,我的任务在3分钟内完成(与之前的1小时运行相比)

受到鼓励,我解压缩了样本2GB数据集的所有文件,并将其作为单个GZip文件上传到同一个S3存储桶中,我的任务再次花费了1个多小时:之后我终止了任务

我没有使用过
mapred.min.split.size
mapred.max.split.size
,但我需要一些示例值来开始使用

不过,从我在互联网上读到的帖子来看,用GZip输入文件为Hadoop流媒体任务处理GBs数据似乎不会招致太多的惩罚,因为从S3中读取数据是值得考虑的

你能否分享:

  • 存储在S3和S3上的文件的“blob大小”
  • 每个任务处理多少个这样的任务
  • 处理这些需要多长时间

  • 我猜调整
    mapred.min.split.size
    mapred.max.split.size
    并保持上述3个值与S3的最佳关系将在作业执行时产生很大变化。

    读取Gzip文件无法并行化。通过将所有文件连接到一个巨大的文件中并将其压缩,您创建了一个瓶颈。以压缩文件大小大致相同、不小于128Mb且文件数量等于Hadoop群集上还原器数量的方式连接和单独压缩文件,可以获得最佳性能。

    是否有一些外部工具/脚本,在给定输入路径的情况下,是否将每批未压缩的100MB文件压缩为单个gzip文件?