Hadoop FastCopy

一、背景

      Hadoop目前使用Distcp作为集群间的数据传输工具,但是Hadoop2.0 可以采用federation,每个ns公用存储节点,这样还采用Distcp作为集群间数据传输将会非常浪费,直接的想法就是能够通过硬链接将federation中共用存储的block也进行共享,就会大大的节省带宽,IO,网络以及时间。

 

 

 

二、流程说明

 



Fastcopy1

      整体流程如图,以下为简要说明:

1、Client首先向Source NS1获取需要拷贝的文件的block location

2、对每一个block,根据Source得Location向Dest NS2申请block,并尽量申请到同一个DataNode节点

3、向DataNode发送File copy的RPC请求

4、DataNode获得请求后查看源DataNode和目的DataNode是否是同一台机器上的同一个实例的DataNode,如果是通过hard link完成copy

5、如果不是,退化为常规的机器间拷贝