2013-10-15 9 views
1

cdh3 및 cdh4에서 파일을 복사하기 위해 hcp 프로토콜을 통해 distcp를 사용하고 싶습니다. 명령은 같다 : hadoop distcp hftp://cluster1:50070/folder1 hdfs://cluster2/folder2hadoop distcp가 hftp 프로토콜을 페일 오버합니다.

그러나 작업으로 인해 위의 예외로 인해 폴더 1에서

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)* 

대부분의 파일이 일부 파일이 실패를 제외하고 FOLDER2에 복사됩니다 JobTracker에의 UI의 일부 http connection error에 실패합니다. 누구나 나와 같은 문제가 있으며이 문제를 해결하는 방법은 무엇입니까? 미리 감사드립니다.

답변

0
  1. Hadoop 클러스터가 클러스터 1이고 클러스터 2가 동일한 버전의 Hadoop을 실행하고 있습니까? 세부 릴리스 버전은 무엇입니까?
  2. Hadoop에서 활성화 한 보안 설정은 무엇입니까?
  3. HTTP 리턴 코드 503은 서버를 일시적으로 사용할 수 없기 때문에 복사하는 동안 네트워크 문제가 있습니까?
+0

답장을 보내 주셔서 감사합니다. 1. 그들은 다른 hadoop 버전, 0.20.2 및 cdh4.4.0에서 실행됩니다. 2. 보안 설정을 알지 못합니다. 그러나 hadoop dfs -ls hftp : // cluster1 : 50070/folder1을 cluster2에 사용할 수 있으며 파일을 나열 할 수 있습니다. hftp가 불안정하고 일시적으로 사용할 수없는 서버가 있다고 생각합니다. 그래서 놓친 구성이 있습니까? – user1573269

+0

두 개의 다른 hadoop 버전에서 distcp가 작동하지 않을 수도 있습니다. 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는 데이터 노드에서 HTTP 웹 서버를 사용하여 데이터를 가져옵니다. 이 HTTP 웹 서버가 모든 데이터 노드에서 작동하는지 확인하십시오. 이 정확한 오류가 발생하고 일부 데이터 노드에서이 웹 서버가 손상된 jar 파일로 인해 시작되지 않음을 알게되었습니다.

이 웹 서버는 데이터 노드를 시작할 때 시작됩니다. 첫 번째 500 행의 데이터 노드 로그를 검사하여 웹 서버가 시작되는지 여부를 확인할 수 있습니다.