个人觉得后者对降低写的latency更友好吧
在向HDFS的写操作中,不得不提一下“数据流管道”。数据流管道在Google实现他们的分布式文件系统(GFS)时就已引入,其目的是:在写一份数据的多个副本时,可以充分利用集群中每一台机器的带宽,避免网络瓶颈和高延时的连接,最小化推送所有数据的延时。 其实这里我可能表述的不太准确,Client在保存数据的过程当中,将数据发送到第一个数据节点DateNode 1,然后在第一个DateNode节点在本地保存数据的同时,将数据推送到第二个数据节点DateNode 2,同理在第二个节点本地保存数据的同时,也会由第二个数据节点将数据同送给第三个数据节点DateNode 3。 这样啊,每个节点都能承担写数据时的部分网络流量,降低了客户端发送多分数据时对网络的冲击
写的话也是按照最近的dataNODE来进行存储吧
客户端要向HDFS写数据,首先要跟namenode通信以确认可以写文件并获得接收文件block的datanode,然后,客户端按顺序将文件逐个block传递给相应datanode,并由接收到block的datanode负责向其他datanode复制block的副本,百度到的,老师的DataNode-2和DataNode-3应该是DataNode-1的副本