我正在学习 Hadoop,并且有关于 dfs.replication 和 mapreduce 如何协同工作等三个问题。假设复制 = 1,因此每个块将被复制到两个服务器/数据节点 (DN) 以处理数据。
问题1:主/名称节点(NN)和每个DN如何知道哪个DN应该在哪个块上工作(例如DN1应该处理block1还是DN2?)
问题 2:如果 DN1 失败,NN 不会立即知道。根据我阅读的PPT,它会在10分钟后知道。那么当 NN 将任务重新分配给 DN2 时,NN 和 DN2 是如何知道 DN2 应该从哪个点开始追赶的呢?
问题3:有了云的概念,DN可以在世界任何地方。因此,如果它们彼此相距很远,为了将大量块从客户端发送到 DN,将导致大量流量。如果很多服务器都在做这种工作,对互联网来说会不会是一个很大的负担?