由于“源长度不匹配”,Hadoop从群集到群集的副本失败

时间:2018-04-11 12:19:57

标签: hadoop hadoop2 distcp

我想将数据从一个群集复制到另一个群集。我用这个命令

hadoop distcp hdfs://SOURCE-NAMENODE:9000/dir/ \ hdfs://DESTINATION-NAMENODE:9000/

我收到了这条消息:

  

18/04/11 12:05:37 INFO mapred.CopyMapper:正在复制   HDFS://源名称节点:9000 / SOURCE-名称节点/瓦兹/ XXXX,18560,1523039740289 / XXXX%2C18560%2C1523039740289.default.1523445499108   至   HDFS://目的地名称节点:9000 / SOURCE-名称节点/瓦兹/ XXXX,18560,1523039740289 / XXXX%2C18560%2C1523039740289.default.1523445499108   18/04/11 12:05:37 INFO mapred.RetriableFileCopyCommand:创建临时文件   文件:   HDFS://目的地的NameNode:9000 / .distcp.tmp.attempt_local2084770019_0001_m_000000_0   18/04/11 12:05:38 ERROR util.RetriableCommand:Retriable失败   命令:复制   HDFS://源名称节点:9000 / SOURCE-名称节点/瓦兹/ XXXX,18560,1523039740289 / XXXX%2C18560%2C1523039740289.default.1523445499108   至   HDFS://目的地名称节点:9000 / SOURCE-名称节点/瓦兹/ XXXX,18560,1523039740289 / XXXX%2C18560%2C1523039740289.default.1523445499108   java.io.IOException:长度不匹配   源:HDFS://源名称节点:9000 / SOURCE-名称节点/瓦兹/ XXXX,18560,1523039740289 / XXXX%2C18560%2C1523039740289.default.1523445499108   和   目标:HDFS://目的地名称节点:9000 / .distcp.tmp.attempt_local2084770019_0001_m_000000_0           在org.apache.hadoop.tools.mapred.RetriableFileCopyCommand.compareFileLengths(RetriableFileCopyCommand.java:193)......

在目的地我只看到创建的目录而没有文件。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这可能是因为您正在复制正在写入的文件。