【发布时间】:2020-05-19 16:01:30
【问题描述】:
我在本地文件系统 /tmp/dist_testfle 上有 1 Gb 文件
我可以复制它:hadoop fs -put file:///tmp/dist_testfile maprfs:///
但不能distcp。命令hadoop distcp file:///tmp/dist_testfile maprfs:///
它抛出 FileNotFoundException
20/05/19 15:57:40 INFO tools.DistCp: DistCp job-id: job_1588609058920_0136
20/05/19 15:57:40 INFO mapreduce.Job: Running job: job_1588609058920_0136
20/05/19 15:57:46 INFO mapreduce.Job: Job job_1588609058920_0136 running in uber mode : false
20/05/19 15:57:46 INFO mapreduce.Job: map 0% reduce 0%
20/05/19 15:57:50 INFO mapreduce.Job: Task Id : attempt_1588609058920_0136_m_000000_0, Status : FAILED
Error: java.io.IOException: org.apache.hadoop.tools.mapred.RetriableFileCopyCommand$CopyReadException: java.io.FileNotFoundException: File file:///tmp/dist_testfile does not exist
at org.apache.hadoop.tools.mapred.CopyMapper.map(CopyMapper.java:250)
at org.apache.hadoop.tools.mapred.CopyMapper.map(CopyMapper.java:52)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:146)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:796)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:346)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1669)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
Caused by: org.apache.hadoop.tools.mapred.RetriableFileCopyCommand$CopyReadException: java.io.FileNotFoundException: File file:///tmp/dist_testfile does not exist
... 10 more
为什么会抛出异常。最后,如何将distcp文件从本地FS复制到hadoop?
【问题讨论】:
-
DistCp 用于将文件从一个集群复制到另一个集群,而不是从本地复制到 hadoop。
-
尝试改用“hfs dfs -copyFromLocal local_path clutter_path”命令。