We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
最近要在Hadoop中做一些和压缩库相关的优化,也借此机会把Hadoop的MapReduce的全流程代码进行了梳理,本篇文章将端到端的梳理一下MapReduce的全流程,并重点关注其中和数据压缩/解压相关的流程。
为了使整个代码的阅读变得有趣,我们先提几个问题作为后续追寻蛛丝马迹的“导火索”:
从上图我们可以看到MapReduce的核心流程如上所示,从用户的Input文件到最终的Output文件,主要经历以下几个阶段:
Split:会将用户的输入文件,进行一些“分割“,在client端进行,逻辑上进行分割,只记录偏移信息。 Map:Split文件信息会在Map阶段进行处理, 调用用户自己定义的Map函数。 环形缓冲区:Map的输出不会直接存在文件里,而是存在环形缓冲区中,攒够了以后再进行落盘。 Spill:从缓冲区落盘的过程叫做spill,也最终会生成多个Spill文件。 Map.out:Spill文件最终会被合并为最终的Map输出。
Shuffle阶段会将Map的输出下载到对应的Reduce的机器上。
Merge:Reduce阶段最开始的时候,会将Map文件进行Merge,形成一个大文件,作为Reduce的输入。 Reduce:Reduce会执行用户自己定义的reduce函数,完成最终的输出。
更多详细的内容可以参考《Hadoop MapReduce Comprehensive Description》 [1] 这篇文章。
目前Hadoop支持的压缩算法共有2大类,一种是可分割的压缩算法,一种是不可分割的压缩算法。而支持的压缩算法的类型有:
[1] Hadoop MapReduce Comprehensive Description: https://0x0fff.com/hadoop-mapreduce-comprehensive-description/
在2020年9月26日,在Apache Hadoop Meetup上,我也分享了更多的技术细节,以及我们实际的性能测试结果:
The text was updated successfully, but these errors were encountered:
No branches or pull requests
最近要在Hadoop中做一些和压缩库相关的优化,也借此机会把Hadoop的MapReduce的全流程代码进行了梳理,本篇文章将端到端的梳理一下MapReduce的全流程,并重点关注其中和数据压缩/解压相关的流程。
1. 起点
为了使整个代码的阅读变得有趣,我们先提几个问题作为后续追寻蛛丝马迹的“导火索”:
2. MapReduce的基本流程
从上图我们可以看到MapReduce的核心流程如上所示,从用户的Input文件到最终的Output文件,主要经历以下几个阶段:
1. Map阶段。
Split:会将用户的输入文件,进行一些“分割“,在client端进行,逻辑上进行分割,只记录偏移信息。
Map:Split文件信息会在Map阶段进行处理, 调用用户自己定义的Map函数。
环形缓冲区:Map的输出不会直接存在文件里,而是存在环形缓冲区中,攒够了以后再进行落盘。
Spill:从缓冲区落盘的过程叫做spill,也最终会生成多个Spill文件。
Map.out:Spill文件最终会被合并为最终的Map输出。
2. Shuffle阶段。
Shuffle阶段会将Map的输出下载到对应的Reduce的机器上。
3. Reduce阶段。
Merge:Reduce阶段最开始的时候,会将Map文件进行Merge,形成一个大文件,作为Reduce的输入。
Reduce:Reduce会执行用户自己定义的reduce函数,完成最终的输出。
更多详细的内容可以参考《Hadoop MapReduce Comprehensive Description》 [1] 这篇文章。
3. Hadoop中压缩算法的支持情况
目前Hadoop支持的压缩算法共有2大类,一种是可分割的压缩算法,一种是不可分割的压缩算法。而支持的压缩算法的类型有:
[1] Hadoop MapReduce Comprehensive Description: https://0x0fff.com/hadoop-mapreduce-comprehensive-description/
4.后续
在2020年9月26日,在Apache Hadoop Meetup上,我也分享了更多的技术细节,以及我们实际的性能测试结果:
The text was updated successfully, but these errors were encountered: