DistCp源码解析
说明 DistCp(分布式拷贝)是用于大规模集群内部和集群之间拷贝的工具。 它使用Map/Reduce实现文件分发,错误处理和恢复,以及报告生成。 它把文件和目录的列表作为map任务的输入,每个任务会完成源列表中部分文件的拷贝。 由于使用了Map/Reduce方法,这个工具在语义和执行上都会有特殊的地方。 这篇文档会为常用DistCp操作提供指南并阐述它的工作模型。 源码详解 作业启动 作业的启动主要包含初始化和作业提交,在初始化阶段主要是list左右需要拷贝的文件信息,根据文件信息构造split信息。 作业提交阶段就是根据初始化阶段构造的split信息,将作业提交到Yarn上面。 作业初始化 初始化阶段主要是list左右需要拷贝的文件信息,根据文件信息构造split信息。 DistCp的入口函数是main函数,在main函数里面主要做了两件事: 注册Cleanup。 初始化和启动作业,核心处理函数为execute函数里面的createAndSubmitJob 创建Job对象,主要是指定Map的处理类,InputFormat 和outputFormat 信息: Job job = ....