我想使用distcp over hftp协议从cdh3和cdh4复制文件。命令如下: hadoop distcp hftp://cluster1:50070/folder1 hdfs://cluster2/folder2
但由于某些原因,工作失败了 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)*
folder1中的大多数文件都将被复制到folder2,但有些文件由于上述异常而失败。谁跟我有同样的问题,怎么解决这个问题?提前谢谢。
2条答案
按热度按时间sulc1iza1#
您的hadoop集群cluster1和cluster2是否运行相同版本的hadoop?详细版本是什么?
你在hadoop上启用了什么安全设置?
http返回码503服务器暂时不可用,复制过程中是否出现网络问题?
jfewjypa2#
hftp使用datanodes上的httpweb服务器来获取数据。检查此http web服务器是否在所有数据节点上工作。我得到了这个确切的错误,在调试之后,我发现这个web服务器在一些数据节点上没有启动,因为一些损坏的jar文件。
此Web服务器在启动datanode时启动。您可以检查datanode日志的最初500行,看看这个web服务器是否正在启动。