为何写流程中是由DataNode1通知DataNode2,再由DataNode2通知DataNode3,而不是DataNode1同时通知DataNode2和DataNode3?

来源:2-2 HDFS写流程和读流程

二零醚

2018-01-23 18:08

个人觉得后者对降低写的latency更友好吧

写回答 关注

3回答

  • 叁金
    2018-01-27 15:32:30

     在向HDFS的写操作中,不得不提一下“数据流管道”。数据流管道在Google实现他们的分布式文件系统(GFS)时就已引入,其目的是:在写一份数据的多个副本时,可以充分利用集群中每一台机器的带宽,避免网络瓶颈和高延时的连接,最小化推送所有数据的延时。  其实这里我可能表述的不太准确,Client在保存数据的过程当中,将数据发送到第一个数据节点DateNode 1,然后在第一个DateNode节点在本地保存数据的同时,将数据推送到第二个数据节点DateNode 2,同理在第二个节点本地保存数据的同时,也会由第二个数据节点将数据同送给第三个数据节点DateNode 3。  这样啊,每个节点都能承担写数据时的部分网络流量,降低了客户端发送多分数据时对网络的冲击

    慕仰2907... 回复叁金

    老师好,请问当第一个block写入到DataNode时会进行备份,必须备份了三个DataNode才会进行第二个block的写入吗?也就是说会不会当第一个block的第二个DataNode副本保存的同时,第二个block也在写入DataNode呢?

    2019-11-09 23:29:16

    共 3 条回复 >

  • 高冷的女神范
    2018-02-04 18:51:29

    写的话也是按照最近的dataNODE来进行存储吧

  • 不忘初心无旁骛
    2018-01-26 11:54:05

    客户端要向HDFS写数据,首先要跟namenode通信以确认可以写文件并获得接收文件block的datanode,然后,客户端按顺序将文件逐个block传递给相应datanode,并由接收到block的datanode负责向其他datanode复制block的副本,百度到的,老师的DataNode-2和DataNode-3应该是DataNode-1的副本

Hadoop基础及演练

与大数据密不可分的Hadoop框架,你值得学习

52269 学习 · 64 问题

查看课程

相似问题