DistCp源碼解析
說(shuō)明 DistCp(分布式拷貝)是用于大規模集群內部和集群之間拷貝的工具。 它使用Map/Reduce實(shí)現文件分發(fā),錯誤處理和恢復,以及報告生成。 它把文件和目錄的列表作為map任務(wù)的輸入,每個(gè)任務(wù)會(huì )完成源列表中部分文件的拷貝。 由于使用了Map/Reduce方法,這個(gè)工具在語(yǔ)義和執行上都會(huì )有特殊的地方。 這篇文檔會(huì )為常用DistCp操作提供指南并闡述它的工作模型。 源碼詳解 作業(yè)啟動(dòng) 作業(yè)的啟動(dòng)主要包含初始化和作業(yè)提交,在初始化階段主要是list左右需要拷貝的文件信息,根據文件信息構造split信息。 作業(yè)提交階段就是根據初始化階段構造的split信息,將作業(yè)提交到Yarn上面。 作業(yè)初始化 初始化階段主要是list左右需要拷貝的文件信息,根據文件信息構造split信息。 DistCp的入口函數是main函數,在main函數里面主要做了兩件事: 注冊Cleanup。 初始化和啟動(dòng)作業(yè),核心處理函數為execute函數里面的createAndSubmitJob 創(chuàng )建Job對象,主要是指定Map的處理類(lèi),InputFormat 和outputFormat 信息: Job job = ....