我想通過hftp協議使用distcp從cdh3和cdh4複製文件。 的命令是這樣的: hadoop distcp hftp://cluster1:50070/folder1 hdfs://cluster2/folder2
hadoop distcp故障轉移hftp協議
但這項工作由於某種http connection error
從JobTracker的UI
INFO org.apache.hadoop.tools.DistCp: FAIL test1.dat : java.io.IOException: HTTP_OK expected, received 503
*at org.apache.hadoop.hdfs.HftpFileSystem$RangeHeaderUrlOpener.connect(HftpFileSystem.java:376)
at org.apache.hadoop.hdfs.ByteRangeInputStream.openInputStream(ByteRangeInputStream.java:119)
at org.apache.hadoop.hdfs.ByteRangeInputStream.getInputStream(ByteRangeInputStream.java:103)
at org.apache.hadoop.hdfs.ByteRangeInputStream.read(ByteRangeInputStream.java:187)
at java.io.DataInputStream.read(DataInputStream.java:83)
at org.apache.hadoop.tools.DistCp$CopyFilesMapper.copy(DistCp.java:424)
at org.apache.hadoop.tools.DistCp$CopyFilesMapper.map(DistCp.java:547)
at org.apache.hadoop.tools.DistCp$CopyFilesMapper.map(DistCp.java:314)
at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:50)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:417)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:332)
at org.apache.hadoop.mapred.Child$4.run(Child.java:268)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1408)
at org.apache.hadoop.mapred.Child.main(Child.java:262)*
在文件夾1的大多數文件將被複制到文件夾2除了一些文件無法因上述例外。 任何人都有與我同樣的問題,以及如何解決這個問題? 在此先感謝。
感謝您的回答。 1.它們運行在不同的hadoop版本中,分別爲0.20.2和cdh4.4.0。 2.我不知道安全設置。但是我可以在cluster2上使用hadoop dfs -ls hftp:// cluster1:50070/folder1,並且它可以列出這些文件。我認爲hftp是不穩定的,有時臨時服務器不可用。那麼有沒有我錯過的配置? – user1573269
據說distcp可能不適用於兩個不同的hadoop版本。我認爲cdh 4.4使用開源Hadoop 2.0核心軟件包,請查看[here](http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDHTarballs/3.25.2013/CDH4-Downloadable-Tarballs/CDH4 -Downloadable-Tarballs.html)。或者請測試hftp以查看它是否足夠穩定。 –