我只是在想这个。假设我正在将80 GB的文件复制到HDFS,并且块大小为64 MB。现在,在收集完一个块的数据后,namenode将块写入数据节点。这是我的问题:namenode以哪种方式选择将块写入哪个datanode。是随机选择还是循环选择?
最佳答案
NameNode将基于负载分配因子在datanode上选择块。它将以平衡所有正在运行的数据节点上的负载的方式选择块。
另外,NameNode也不gather data worth of a block and write it to a datanode
。当将写入请求发送到NameNode时,它将分配要写入各个数据节点的块,然后指示dataNode开始从源复制数据。它是一个主节点;它不会自己复制。
关于hadoop - Namenode如何决定在哪个datanode中写入块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21121275/