복붙노트

[HADOOP] s3distcp에 대한 여러 소스 파일

HADOOP

s3distcp에 대한 여러 소스 파일

S3에서 s3distcp를 사용하는 대신 전체 폴더의 HDFS에 파일 목록을 복사 할 수있는 방법이 있습니까? srcPattern이 작동 할 수없는 경우입니다.

나는 S3 폴더 모두 가진 다른 이름에 여러 개의 파일이 있습니다. 나는 HDFS 디렉토리에 특정 파일을 복사합니다. 나는 s3distcp 여러 소스 파일을 경로를 지정할 수있는 방법을 찾지 못했습니다.

내가 현재 사용하고 해결 방법 srcPattern에있는 모든 파일 이름을 알리는 것입니다

hadoop jar s3distcp.jar
    --src s3n://bucket/src_folder/
    --dest hdfs:///test/output/
    --srcPattern '.*somefile.*|.*anotherone.*'

파일 수가 너무 많은 경우에이 일이 일을 할 수 있나요? 약 10 000로?

해결법

  1. ==============================

    1.그래 넌 할수있어. 당신이 필요로하는 모든 파일과 매니페스트 파일을 만들고 여기에 언급 한 바와 같이 --copyFromManifest 옵션을 사용하여

    그래 넌 할수있어. 당신이 필요로하는 모든 파일과 매니페스트 파일을 만들고 여기에 언급 한 바와 같이 --copyFromManifest 옵션을 사용하여

  2. ==============================

    2.하둡 distcp가 문제를 해결해야한다. 우리는 HDFS에 S3에서 데이터를 복사 할 distcp 사용할 수 있습니다.

    하둡 distcp가 문제를 해결해야한다. 우리는 HDFS에 S3에서 데이터를 복사 할 distcp 사용할 수 있습니다.

    그리고 그것은 또한 와일드 카드를 지원하고 우리는 명령에 여러 소스 경로를 제공 할 수 있습니다.

    http://hadoop.apache.org/docs/r1.2.1/distcp.html

    이 특정 URL에 사용 섹션을 통해 이동

    예: 당신은 TEST1 폴더 안에 S3 버킷 (테스트 버킷)에서 다음 파일을 고려한다.

    abc.txt
    abd.txt
    defg.txt
    

    그리고 내부 TEST2 당신이 가진 폴더

    hijk.txt
    hjikl.txt
    xyz.txt
    

    그리고 당신의 HDFS 경로가 HDFS입니다 : //localhost.localdomain : 9000 / 사용자 / 시험 /

    특정 패턴에 대해 다음과 같이 distcp 명령입니다.

    hadoop distcp s3n://test-bucket/test1/ab*.txt \ s3n://test-bucket/test2/hi*.txt hdfs://localhost.localdomain:9000/user/test/
    
  3. from https://stackoverflow.com/questions/26273181/multiple-source-files-for-s3distcp by cc-by-sa and MIT license