hadoop,hdfs,源代码阅读,什么Class.method()告诉写在哪里?

时间:2013-06-27 04:17:35

标签: hadoop hdfs

FSDataOutputStream.java是用于编写内容的类。

那要写哪个datanode?哪个班级有关系?

1 个答案:

答案 0 :(得分:0)

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

当特定DataNode累积大量数据时,它会开始将数据推送到其他节点以创建副本(基于您的复制因子)。因此,DataNode可能同时进行读写操作。

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

HTH