Builds on #44. The NameNode can command DataNodes to send blocks to other DataNodes for the purposes of block recovery and rebalancing. Once the machinery for general data packet streaming between DataNodes is in place, we'll want to add in logic for DataNodes to respond to these requests from the NameNode and initiate streaming.
Builds on #44. The NameNode can command DataNodes to send blocks to other DataNodes for the purposes of block recovery and rebalancing. Once the machinery for general data packet streaming between DataNodes is in place, we'll want to add in logic for DataNodes to respond to these requests from the NameNode and initiate streaming.