(5) Hadoop DFS: The NameNode is in-charge of ensuring each block always has the intended number of replicas.
Every time a report from a DataNode arrives, the NameNode will determine how many replicas each block has.
If a block is under-replicated, it will get inserted in the replication priority queue. An over-replicated block will make the NameNode to remove one replica.
If a replica resides on one rack and other replica is scheduled to be created on the same rack, the system will find a new rack to create the replica.