client 写datanode后,由datanode再逐级向其他datanode写数据,datanode也会向namenode报告。为什么namenode要告诉client端数据已写完, datanode不是应该直接反馈给client端吗
反向思考下,如果DataNode是直接反馈client的,那么当client想要读取数据的时候应该怎么读呢?在无数个DataNode中一个一个找?所以必须由NameNode来维护文件系统树和整理目录是很有必要的
因为namenode需要及时更新存储信息,方便记录存储各个datanode存储大小信息