HDFS原理——HDFS就是一个情报组织(3)

声明:本博文图片来自于网络,有关专业术语的标准解释参考《Hadoop权威指南》中文第二版。欢迎大家关注我的大数据专栏https://blog.csdn.net/column/details/23027.html
前两小节,皮了一下HDFS的结构以及读取数据的过程。这一趴,准备说说HDFS写入数据的过程。关于JAVA API的调用,我之后会补上,因为我只有理论是不够的,随后自己跑跑代码后补上。
《天下第一》很多人应该看过,山庄里的情报机构也很庞大高效。当吴镇宇打开桌案上的龙头将情报或者命令纸条传递下去时,山庄下面就想流水线或者管道一样开始有序的工作了。当时就在想,如果内部出现叛徒将假情报通过管道传递下去,那可能就是一个灭顶之灾。所以当上级传递过来情报和命令时,首先要做的就是核查所谓的上级是不是自己人?是不是有权限去发布这个命令或者说情报,认证失败则不执行。
这里写图片描述
具体的流程是这样的,首先依旧是第二节获取情报时的办公室主任DistributedFS,同样通过他来派一名自己的心腹FSDataOutputStream,这名心腹包装后化名DFSOuputStream。在认证通过后,DFSOuputStream向namenode发布命令,分配更多的datanode特工,在传送情报时多个datanode特工形成一个管道,进行传递情报。同样当此管道中的某个特工有问题时,首先关闭管道,删除此特工,然后确认所有传输的数据包都添加回管道的第一个特工手里,然后调用新的特工,新特工的编号(datanode的标识)会在namenode中备案。在整个传输过程中,DFSOutputStream一直通过datanode收到数据后发回的回执来确认数据已经成功发送。当所有的数据在管道中传输成功,且DSFOutputStream收到了回执确认成功后,将删除此队列(只是删除队列而不删除datanode)。
HDFS的写入数据过程大概就是这样,哈哈哈。

猜你喜欢

转载自blog.csdn.net/handoking/article/details/80706491