2013-10-15 117 views
1

我想通過hftp協議使用distcp從cdh3和cdh4複製文件。 的命令是這樣的: hadoop distcp hftp://cluster1:50070/folder1 hdfs://cluster2/folder2hadoop 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除了一些文件無法因上述例外。 任何人都有與我同樣的問題,以及如何解決這個問題? 在此先感謝。

回答

0
  1. 您的Hadoop集羣cluster1和cluster2是否運行相同版本的Hadoop?什麼是細節發佈版本?
  2. 您在Hadoop上啓用的任何安全設置?
  3. HTTP返回代碼503是服務器暫時不可用,在複製過程中是否存在任何網絡問題?
+0

感謝您的回答。 1.它們運行在不同的hadoop版本中,分別爲0.20.2和cdh4.4.0。 2.我不知道安全設置。但是我可以在cluster2上使用hadoop dfs -ls hftp:// cluster1:50070/folder1,並且它可以列出這些文件。我認爲hftp是不穩定的,有時臨時服務器不可用。那麼有沒有我錯過的配置? – user1573269

+0

據說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以查看它是否足夠穩定。 –

1

HFTP在datanodes上使用HTTP Web服務器來獲取數據。檢查這個HTTP Web服務器是否在所有的datanode上工作。我得到了這個確切的錯誤,調試後,我發現這個Web服務器在一些數據節點上沒有啓動,由於一些損壞的jar文件。

此Web服務器在啓動數據節點時啓動。您可以檢查最初的500行datanode日誌,看看是否啓動了web服務器。