先看下资料写入的流程图
一个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的确认消息),将D得意反义词N1自己的确认消息和DN2、DN3的确认消息一起响应给软件
软件接收到消息之后对DN1、DN2、DN3的确认消息进行验证,验证成功,则将ackQueue中的dataPacket移除
软件继续执行一样的操作,直到发送出的线下资料量达到blockSize大小,此时此刻一个block的写入完毕
当软件发送资料的字节数量达到一个blockSize之后,会向NameNode从头开始请求一个新的blockId及有关的DataNode消息哦
下面以流程图的方法加深资料写入DataNode过程的理解
本文发布于:2023-03-31 02:58:44,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/5e09827655e7fbadf9fb05d0c1cc75d3.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:hadoop文档仓库(简述hadoop和opc的通信).doc
本文 PDF 下载地址:hadoop文档仓库(简述hadoop和opc的通信).pdf
留言与评论(共有 0 条评论) |