The performance of Active NameNode could be impact when Balancer requests #getBlocks, since query blocks of overly full DNs performance is extremely inefficient currently. The main reason is NameNodeRpcServer#getBlocks hold read lock for long time. In extreme case, all handlers of Active NameNode RPC server are occupied by one reader NameNodeRpcServer#getBlocks and other write operation calls, thus Active NameNode enter a state of false death for number of seconds even for minutes.
The similar performance concerns of Balancer have reported by
HDFS-9412, HDFS-7967, etc.
If Standby NameNode can shoulder #getBlocks heavy burden, it could speed up the progress of balancing and reduce performance impact to Active NameNode.