一 概念

1. 什么是Shuffle过程?

  • Shuffle过程是指Map方法之后,Reduce方法之前的数据处理过程。

2.什么是hadoop环形缓冲区?

hadoop的环形缓冲区其实只是一个简单的buffer,在这里是一个缓存数组(byte),默认大小是100M,源码如下:

3.什么是equator(赤道)? 

最初的时候,equator在数组的最前端,可以将数组想象为环形,首尾相接,此时,equator就既在数组的开头,又在数组的结尾

二 环形缓冲区原理 

    环形缓冲区其实是一个数组,数组中存放着key和value的数据,以及关于key和value的元数据信息,key/value的元数据存储的格式是int类型,每个key/value对应一个元数据,元数据由4个int组成,第一个int存放value的起始位置,第二个int存放key的起始位置,第三个int存放partition,第四个int存放value的长度。

    key/value数据和元数据在环形缓冲区中的存储是由equator分隔的,key/value按照索引递增的方向存储,元数据则按照索引递减的方向存储,将数组抽象为一个环形结构之后,以equator为界,key/value顺时针存储,元数据逆时针存储。

在B站上看到了一个形象的视频,于是将其做成动图展示出来,感谢up主:此视频的链接是:https://www.bilibili.com/video/BV1pJ411H7m7

 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐