I found this useful, this is from the hadoop operations book:
At first glance, it seems that federation is different from simple multiple low-key clusters, except that the client plug-in treats them as one logical namespace. However, one of the main factors of differentiation is that each datanode in a federated cluster stores blocks for each namenode. When each namenode is formed, it generates a block pool that stores the block data associated with this namenode. Each datanode, in turn, stores data for several block pools and associates with each namenode. When a nomenoda receives a heartbeat from a datanode, it learns about the totals of the space on the datanode consumed by the other block pools, as well as data other than HDFS. the rationale for all datanodes participating in all block pools, and not just the presence of low-key clusters, is that this provides better overall utilization of the power of the datanode. Instead, if we had a separate set of dantodes entirely for the heavily used namenode A, datanodes for name B would not be used enough, while name A datanodes would try their best to keep up with the load.
source share