我只是想知道这件事。假设我正在将80 GB文件复制到HDFS,并且我的块大小为64 MB。现在,在收集了一个块的数据之后,namenode将块写入datanode。这是我的问题:namenode以何种方式选择应该将块写入哪个datanode。它是随机选择还是一些循环选择?
答案 0 :(得分:2)
NameNode将根据负载分配因子在datanode上选择块。它将选择块,使所有正在运行的数据节点上的负载均衡。
此外,NameNode不是gather data worth of a block and write it to a datanode
。当写入请求发送到NameNode时,它会分配要写入相应数据节点的块,然后指示dataNodes开始从源复制数据。它是主节点;它不会复制本身。