MapReduce运行流程分析(2)

<hello, 1>                0                                          <map, 1>                        0

<word, 1>                1                                          <reduce, 1>                      1

                                             <hello, 1>                0                                          <java, 1>                          0 

                                             <hadoop, 1>            1                                          <interface, 1>                  1

                                             <abc, 1>                  0                                          <java, 1>                        0

                                             <qaz, 1>                  1                                          <hdfs, 1>                        1

                                             <java, 1>                0                                          <spark, 1>                        0

                                             <jvm, 1>                  1                                          <storm, 1>                      1

spill过程:缓冲区默认是100M,每当里面的数据达到80M(比例80%,这个比例也可以人为设置),就会另起一个线程SpillThread往磁盘溢写,每次溢写都会产生一个数据文件和对应的索引文件。

sort过程:在溢写的过程中一直在排序,比较算法可以定制,默认排序算法是快速排序(可以人为设定),排序的过程就是一些位置的索引在不断的变化。

排序之后的数据:         

<abc, 1>                0                                          <hdfs, 1>                        1

<hello, 1>                0                                          <interface, 1>                  1

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13813.html