hadoop文档仓库(Hadoop文档)
首发

hadoop文档仓库(Hadoop文档)

优质
请用语音读文章

先看下资料写入的流程图

一个packet写入流程

以文字形式梳理上述步骤

目标

将一个本地文件a.txt上传到hdfs文件系统中。hdfs中默认blockSize=128M

复制因子默认为3

仔细步骤

软件根据配置消息与NameNode建立连接。并跟你说NameNode。将a.txt文件上传到hdfs的/tmp/a.txt路径

NameNode生成一个值为1的blockId(用来创建对应blockId的block文件)。并根据复制因子3返回对应个数的可用来存放目前block的DataNode节点到软件。例如(DN1、DN2、DN3)

软件与DN1建立连接。之后将blockId、DN2、DN3等有关资料先发送给DN1

DN1接收到这种消息之后与DN2建立连接。之后将blockID、DN3等有关资料发送给DN2

DN2接收到这种资料之后与DN3建立连接。之后将blockID发送给DN3

软件读取本地文件内容并放入内存缓冲区中。当缓冲区满。开始将缓冲区中的资料取出。并计算校验和(每512字节的实际资料会计算出一个4字节的校验和。这512字节的资料和校验和称为一个chunk)。之后这种chunk写入到一个dataPacket中。当dataPacket中chunk的数量或实际资料大小达到一定阈值后将这种dataPacket发送给DN1。并将这种dataPacket放入到一个ackQueue队列中(当软件接收到DN1的确认写入的消息之后才将这种dataPacket从队列中移除)

DN1接收到软件发送的资料之后。将dataPacket中的资料和校验和写入本地文件中。之后将dataPacket发送给DN2

DN2接收到DN1发送的资料之后。将dataPacket中的资料和校验和写入本地文件中。之后dataPacket发送给DN3

DN3接收到DN2发送的资料之后。将dataPacket中的资料和校验和写入本地文件中。之后发送确认消息给DN2

DN2接收到DN3的确认消息之后将DN2自己的确认消息和DN3的确认消息发送给DN1

DN1接收到DN2发来的确认消息后(包含DN2和DN3的确认消息)。将DN1自己的确认消息和DN2、DN3的确认消息一起响应给软件

软件接收到消息之后对DN1、DN2、DN3的确认消息进行验证。验证成功。则将ackQueue中的dataPacket移除

软件继续执行一样的操作。直到发送出的线下资料量达到blockSize大小。此时此刻一个block的写入完毕

小心

当软件发送资料的字节数量达到一个blockSize之后。会向NameNode从头开始请求一个新的blockId及有关的DataNode消息哦

下面以流程图的方法加深资料写入DataNode过程的理解

图示(以一个packet写入为例)

以上就是由优质生活领域创作者 生活常识网 整理编辑的,如果觉得有帮助欢迎收藏转发~

分享到 :
相关推荐

冒险岛nlc的全称是叫什么(如今的冒险岛ONLINE)

请用语音读文章大家好。这里是守望者加速器的小编。冒险岛算是早期的一款互联网游戏。基[...

牙有品牌排行榜十大排名(2020年牙膏十大品牌排行榜)

请用语音读文章牙膏作为最日常的日用消耗品。超市的牙膏种类不要太多!牙膏最基本的作用[...

骑着电动车幽默的说说大全(骑电动车幽默说说)

请用语音读文章  1、不打工。就没饭吃。打完工。吃碗牛肉面。骑电动车回家。这风景还[...

特别好看的恐怖小说(推荐几本深夜不敢看的恐怖小说)

请用语音读文章在之前的介绍中。有小伙伴们问能否介绍一些好看的灵异类型的网文小说介绍[...

发表评论

您的电子邮箱地址不会被公开。