Hadoop 压缩对MapReduce作业有什么影响?

Hadoop 压缩对MapReduce作业有什么影响?,hadoop,mapreduce,Hadoop,Mapreduce,Microsoft的白皮书中记录了以下内容: 如果输入源文件非常大(例如,超过500 GB),并且您希望针对相同的输入数据重复运行MapReduce作业,则压缩会有所帮助 因此,如果输入文件非常大,我们应该使用压缩,因为它可以节省磁盘I/O和网络带宽 但是,我无法理解“针对相同的输入数据重复运行MapReduce作业”如何有助于提高压缩和解压缩性能?即使每次数据都不同,压缩也应该具有相同的性能。我认为这取决于使用何种压缩逻辑来压缩文件。以下是我在网上找到的信息 文件压缩带来两大好处: A.它减

Microsoft的白皮书中记录了以下内容:

如果输入源文件非常大(例如,超过500 GB),并且您希望针对相同的输入数据重复运行MapReduce作业,则压缩会有所帮助

因此,如果输入文件非常大,我们应该使用压缩,因为它可以节省磁盘I/O和网络带宽


但是,我无法理解“针对相同的输入数据重复运行MapReduce作业”如何有助于提高压缩和解压缩性能?即使每次数据都不同,压缩也应该具有相同的性能。

我认为这取决于使用何种压缩逻辑来压缩文件。以下是我在网上找到的信息

文件压缩带来两大好处: A.它减少了存储文件所需的空间, B它加快了跨网络或磁盘之间的数据传输。在处理大量数据时,这两种节省都是非常重要的,所以仔细考虑如何在Hadoop中使用压缩是有代价的。 压缩的原因: a) 数据主要是存储的,不经常处理。这是通常的DWH场景。在这种情况下,节省空间可能比处理开销重要得多 b) 压缩因子非常高,因此我们节省了大量IO。 c) 解压是非常快的(像Snappy),因此我们有一个小价格的一些收益 d) 数据已压缩到达

不压缩的原因:

a) 压缩数据不可拆分。必须注意的是,许多现代格式都是使用块级压缩构建的,以支持文件的拆分和其他部分处理。 b) 数据是在集群中创建的,压缩需要大量时间。必须注意的是,压缩通常比解压缩更需要CPU

所有压缩算法都表现出一种空间/时间权衡:更快的压缩和解压缩速度通常是以更小的空间节省为代价的。这意味着,更快的压缩(就时间而言)意味着文件相对更大(在空间上没有多大好处)。较慢的压缩意味着,压缩的文件非常小。 2.通用输入格式


我认为这取决于使用何种压缩逻辑来压缩文件。以下是我在网上找到的信息

文件压缩带来两大好处: A.它减少了存储文件所需的空间, B它加快了跨网络或磁盘之间的数据传输。在处理大量数据时,这两种节省都是非常重要的,所以仔细考虑如何在Hadoop中使用压缩是有代价的。 压缩的原因: a) 数据主要是存储的,不经常处理。这是通常的DWH场景。在这种情况下,节省空间可能比处理开销重要得多 b) 压缩因子非常高,因此我们节省了大量IO。 c) 解压是非常快的(像Snappy),因此我们有一个小价格的一些收益 d) 数据已压缩到达

不压缩的原因:

a) 压缩数据不可拆分。必须注意的是,许多现代格式都是使用块级压缩构建的,以支持文件的拆分和其他部分处理。 b) 数据是在集群中创建的,压缩需要大量时间。必须注意的是,压缩通常比解压缩更需要CPU

所有压缩算法都表现出一种空间/时间权衡:更快的压缩和解压缩速度通常是以更小的空间节省为代价的。这意味着,更快的压缩(就时间而言)意味着文件相对更大(在空间上没有多大好处)。较慢的压缩意味着,压缩的文件非常小。 2.通用输入格式


您还可以指出microsoft白皮书链接吗?这只是一个数学问题,如果您多次阅读压缩的内容,您的净节省量要比阅读一次未压缩的内容大得多。@Ram,我没有链接。如果可能的话我可以上传。但是有问题,据我所知,我们不能附加有问题的文档。@Thomas,你说得对,压缩数据的净保存比未压缩的要好,但是-例如,一个压缩文件“FILE1”一天处理4次,另一个压缩文件“FILE2”一天处理1次。同一map reduce程序在一天的不同时间在两个文件上运行。根据“针对相同的输入数据重复运行MapReduce作业”,我们应该压缩文件1,而不是文件2。你的建议:“每天一次”仍然是一个重复的过程。在这种情况下,您应该同时压缩它们。相反,如果您下载一个未压缩的文件一次,只读取一次,则没有必要使用额外的过程压缩数据,因为没有/几乎没有保存。您还可以指向microsoft白皮书链接吗?这只是数学,如果您多次阅读压缩内容,您的净节省量将比阅读未压缩内容大得多。@Ram,我没有链接。如果可能的话我可以上传。但是有问题,据我所知,我们不能附加有问题的文档。@Thomas,你说得对,压缩数据的净保存比未压缩的要好,但是-例如,一个压缩文件“FILE1”一天处理4次,另一个压缩文件“FILE2”一天处理1次。同一map reduce程序在一天的不同时间在两个文件上运行。根据“针对相同的输入数据重复运行MapReduce作业”,我们应该压缩文件1,而不是文件2。你的建议:“每天一次”仍然是一个重复的过程。在这种情况下,您应该同时压缩它们。相反,如果您下载一个未压缩的文件一次,只读取一次,那么让一个额外的进程压缩数据就没有什么意义了,因为没有/几乎没有保存。请您帮助解释一下“针对相同的输入重复运行MapReduce作业”的原因