이전 AMI 버전의 Amazon EMR과 S3 DistCp 유틸리티의 차이점 - Amazon EMR

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

이전 AMI 버전의 Amazon EMR과 S3 DistCp 유틸리티의 차이점

Amazon EMR에서 지원되는 S3 DistCp 버전

Amazon EMR AMI 릴리스에서 지원되는 S3 DistCp 버전은 다음과 같습니다. 1.0.7 이후의 S3 DistCp 버전은 클러스터에서 직접 찾을 수 있습니다. 최신 기능을 사용하려면 /home/hadoop/lib의 JAR을 사용하십시오.

버전 설명 릴리스 날짜
1.0.8 --appendToLastFile, --requirePreviousManifest--storageClass 옵션을 추가합니다. 2014년 1월 3일
1.0.7 --s3ServerSideEncryption 옵션을 추가합니다. 2013년 5월 2일
1.0.6 --s3Endpoint 옵션을 추가합니다. 2012년 8월 6일
1.0.5 실행할 S3 버전을 지정하는 기능을 DistCp 개선합니다. 2012년 6월 27일
1.0.4 --deleteOnSuccess 옵션을 개선했습니다. 2012년 6월 19일
1.0.3 --numberFiles--startingIndex 옵션에 대한 지원을 추가했습니다. 2012년 6월 12일
1.0.2 그룹 사용 시 파일 명명을 개선했습니다. 2012년 6월 6일
1.0.1 S3의 초기 릴리스DistCp. 2012년 1월 19일

클러스터에 S3 DistCp 복사 단계 추가

실행 중인 클러스터에 S3 DistCp 복사 단계를 추가하려면 다음 명령을 입력하고 J-3GYxxxxxx9IOK를 클러스터 ID로 바꾸고 mybucket을 Amazon S3 버킷 이름으로 바꾸십시오.

참고

가독성을 위해 Linux 줄 연속 문자(\)가 포함됩니다. Linux 명령에 사용하거나 제외할 수 있습니다. Windows에서는 제외시키거나 캐럿(^)으로 바꿉니다.

aws emr add-steps --cluster-id j-3GYXXXXXX9IOK \ --steps Type=CUSTOM_JAR,Name="S3DistCp step",Jar=/home/hadoop/lib/emr-s3distcp-1.0.jar,\ Args=["--s3Endpoint,s3-eu-west-1.amazonaws.com",\ "--src,s3://mybucket/logs/j-3GYXXXXXX9IOJ/node/",\ "--dest,hdfs:///output",\ "--srcPattern,.*[a-zA-Z,]+"]
예 아마존 CloudFront 로그를 HDFS에 로드

이 예제는 실행 중인 클러스터에 단계를 추가하여 Amazon CloudFront 로그를 HDFS로 로드합니다. 이 과정에서 압축 형식이 Gzip ( CloudFront기본값) 에서 LZO로 변경됩니다. 이렇게 하면 LZO를 사용하여 압축된 데이터를 압축 해제 시 여러 맵으로 분할할 수 있으므로 Gzip 사용 시 압축이 완료될 때까지 기다릴 필요가 없어서 유용합니다. 따라서 Amazon EMR을 사용하여 데이터를 분석할 때 성능이 향상됩니다. 또한 이 예제는 --groupBy 옵션에 지정된 정규식을 사용하여 주어진 시간 동안 모든 로그를 단일 파일로 결합하여 성능을 개선합니다. Amazon EMR 클러스터는 여러 개의 작은 GZIP 압축 파일을 처리할 때보다 LZI로 압축된 소수의 대용량 파일을 처리할 때 더 효율적입니다. LZO 파일을 분할하려면 파일을 인덱싱하고 하둡-lzo 타사 라이브러리를 사용해야 합니다.

아마존 CloudFront 로그를 HDFS로 로드하려면 다음 명령을 입력하고, J-3GYxxxxxx9IOK를 클러스터 ID로, mybucket을 Amazon S3 버킷 이름으로 대체하십시오.

참고

가독성을 위해 Linux 줄 연속 문자(\)가 포함됩니다. Linux 명령에 사용하거나 제외할 수 있습니다. Windows에서는 제외시키거나 캐럿(^)으로 바꿉니다.

aws emr add-steps --cluster-id j-3GYXXXXXX9IOK \ --steps Type=CUSTOM_JAR,Name="S3DistCp step",Jar=/home/hadoop/lib/emr-s3distcp-1.0.jar,\ Args=["--src,s3://mybucket/cf","--dest,hdfs:///local",\ "--groupBy,.*XABCD12345678.([0-9]+-[0-9]+-[0-9]+-[0-9]+).*",\ "--targetSize,128", "--outputCodec,lzo","--deleteOnSuccess"]

위 예제가 다음 로그 파일에서 실행되는 경우를 생각해 보십시오. CloudFront

s3://DOC-EXAMPLE-BUCKET1/cf/XABCD12345678.2012-02-23-01.HLUS3JKx.gz s3://DOC-EXAMPLE-BUCKET1/cf/XABCD12345678.2012-02-23-01.I9CNAZrg.gz s3://DOC-EXAMPLE-BUCKET1/cf/XABCD12345678.2012-02-23-02.YRRwERSA.gz s3://DOC-EXAMPLE-BUCKET1/cf/XABCD12345678.2012-02-23-02.dshVLXFE.gz s3://DOC-EXAMPLE-BUCKET1/cf/XABCD12345678.2012-02-23-02.LpLfuShd.gz

S3는 파일을 다음 두 파일로 DistCp 복사, 연결 및 압축합니다. 여기서 파일 이름은 정규 표현식의 일치 여부에 따라 결정됩니다.

hdfs:///local/2012-02-23-01.lzo hdfs:///local/2012-02-23-02.lzo