0

FSDataOutputStream.java 是用来写东西的类。

那么要写哪个数据节点?哪个类是相关的?

4

1 回答 1

0

当客户端想要写入 DataNode 时,它​​会联系 NameNode。NameNode 反过来,借助基于 DataNode 发送的块报告生成的块位置图,告诉客户端哪个特定 DataNode 具有可以写入数据的空闲块。然后客户端开始直接写入该节点,而无需与 NameNode 交互。所以这是随机的,取决于空间的可用性。它可以是集群中n个节点中的任何一个节点。

当一个特定的 DataNode 积累了相当多的数据时,它开始将数据推送到其他节点以创建副本(基于您的复制因子)。所以一个 DataNode 可能同时在读和写。

该类org.apache.hadoop.hdfs.server.namenode.BlocksMap维护从块到其元数据的映射。

高温高压

于 2013-06-27T05:04:49.427 回答