FSDataOutputStream.java是用于编写内容的类。
那要写哪个datanode?哪个班级有关系?
答案 0 :(得分:0)
当客户想要写入DataNode时,它会联系NameNode。反过来,NameNode借助于基于DataNodes发送的块报告生成的块位置图,告诉客户端哪个特定的DataNode具有可以写入数据的空闲块。然后客户端开始直接写入该节点,而无需与NameNode交互。所以这是基于空间可用性的随机性。它可以是集群中n个节点中的任何一个节点。
当特定DataNode累积大量数据时,它会开始将数据推送到其他节点以创建副本(基于您的复制因子)。因此,DataNode可能同时进行读写操作。
类org.apache.hadoop.hdfs.server.namenode.BlocksMap
维护从块到其元数据的映射。
HTH