2016-07-19 21 views
0

s3에서 HDFS로 193GB 데이터를 복사하려고합니다. 나는 S3-distcp 및 하둡 distcp에 대해 다음 명령을 실행 해요 : 나는 마스터 노드에서 다음을 실행하고 또한 전송되는 양에 수표를 유지하고있어s3-dist-cp 및 hadoop distcp 작업이 EMR에서 무한 반복됩니다.

s3-dist-cp --src s3a://PathToFile/file1 --dest hdfs:///user/hadoop/S3CopiedFiles/ 

hadoop distcp s3a://PathToFile/file1 hdfs:///user/hadoop/S3CopiedFiles/ 

. 약 1 시간이 지난 후 복사가 끝나면 모든 것이 지워지고 디스크 공간은 클러스터의 4 코어 인스턴스에서 99.8 %로 표시되며 hadoop 작업은 영원히 계속됩니다. 최대한 빨리이 명령어를 실행하는 는

16/07/18 18:43:55 INFO mapreduce.Job: map 0% reduce 0% 
16/07/18 18:44:02 INFO mapreduce.Job: map 100% reduce 0% 
16/07/18 18:44:08 INFO mapreduce.Job: map 100% reduce 14% 
16/07/18 18:44:11 INFO mapreduce.Job: map 100% reduce 29% 
16/07/18 18:44:13 INFO mapreduce.Job: map 100% reduce 86% 
16/07/18 18:44:18 INFO mapreduce.Job: map 100% reduce 100% 

이 시간 동안 데이터에 즉시 다음 사본을 인쇄됩니다. 그것은 다시 처음부터 시작됩니다.

16/07/18 19:52:45 INFO mapreduce.Job: map 0% reduce 0% 
16/07/18 18:52:53 INFO mapreduce.Job: map 100% reduce 0% 

여기에 누락 된 것이 있습니까? 어떤 도움을 주셔서 감사합니다.

또한 마스터 노드에서 로그 파일을 찾을 수있어서 작업이 실패하고 따라서 루핑되는지 확인할 수 있습니까? 감사합니다

답변

0

제 경우에는 큰 압축 파일 하나를 hdfs에서 s3으로 복사하고 hadoop distcp는 s3-dist-cp보다 훨씬 빠릅니다.

로그를 확인할 때 다중 업로드 부분이 축소 단계에서 매우 오랜 시간이 걸립니다. 블록 업로드 (134MB)는 s3-dist-cp의 경우 20 초가 걸리며, hadoop distcp의 경우 4 초 밖에 걸리지 않습니다.

distcp는 s3 (임시 파일 시스템)에 임시 파일을 만들고 s3-dist-cp는 임시 파일을 hdfs에 만듭니다.

멀티 업로드 성능이 distcp 및 s3-dist-cp와 다른 이유를 아직 조사하고 있습니다. 좋은 통찰력을 가진 사람이 여기에 기여할 수 있기를 바랍니다.

0

조사를 위해 Hadoop 2.8.0을 픽업하고 s3a : // filesystem을 사용하면 현재 수집 한 많은 파일 시스템 통계를 수집 할 수 있습니다.

실제 성능 킬러는 rename()입니다.이 파일은 s3 클라이언트에서 복사 한 다음 삭제를 통해 모방됩니다. distcp 실행 중 하나가 이름이 변경된 atomic distcp를 수행하려고하면 약 1 지연이 추가됩니다 6-10MB의 데이터마다 초입니다. 업로드 후 16 초 동안의 134MB는 "이름 변경"과 함께 사용됩니다.