(注意:我需要使用distcp来获得并行性)
我在/ user / bhavesh文件夹中有2个文件
我在/ user / bhavesh1文件夹中有1个文件
将/ user / bhavesh中的2个文件复制到/ user / uday文件夹(此工作正常)
此create / user / uday文件夹
如果创建文件而不是文件夹,则将/ user / bhavesh1中的1个文件复制到/ user / uday1文件夹
我需要的是如果有一个文件 /user/bhavesh1/emp1.csv 我需要的是它应该创建 /user/uday1/emp1.csv [uday1应该形成目录]任何建议或帮助都非常感谢。
答案 0 :(得分:1)
在unix系统中,当您通过给目标目录名以/ user / uday1 /结尾来复制单个文件时,将创建目标目录,但是如果目标目录丢失,hadoop fs -cp命令将失败。
当它出现hdfs distcp时,以/结尾的文件/目录名称将被忽略,如果它是单个文件。一种解决方法是在执行distcp命令之前创建目标目录。您可以在-mkdir中添加-p选项以避免目录已存在错误。
hadoop fs -mkdir -p /user/uday1 ; hadoop distcp /user/bhavesh1/emp*.csv /user/uday1/
这适用于源目录中的单个文件和多个文件。