Replicating blocks send the entire block data in one frame. This results in a failure on the receiving end for blocks larger than 2GB.
We should change block replication to send the block data as a stream when the block is large (building on the network changes in
SPARK-6237). This can use the conf spark.maxRemoteBlockSizeFetchToMem to decided when to replicate as a stream, the same as we do for fetching shuffle blocks and fetching remote RDD blocks.