기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
이전 AMI 버전의 Amazon과 S3DistCp utility의 차이점 EMR
Amazon에서 지원되는 S3DistCp version EMR
Amazon EMR AMI 릴리스에서는 다음 S3DistCp 버전이 지원됩니다. 1.0.7 이후의 S3DistCp 버전은 클러스터에서 직접 찾을 수 있습니다. 최신 기능은 JAR의 /home/hadoop/lib
를 사용합니다.
버전 | 설명 | 릴리스 날짜 |
---|---|---|
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 | 실행할 S3DistCp 버전을 지정하는 기능을 개선합니다. | 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 | S3DistCp의 초기 릴리스. | 2012년 1월 19일 |
클러스터에 S3DistCp copy 단계 추가
실행 중인 클러스터에 S3DistCp copy 단계를 추가하려면 다음 명령을 입력하고 바꿉니다.j-3GYXXXXXX9IOK
클러스터 ID로 교체 amzn-s3-demo-bucket
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://amzn-s3-demo-bucket/logs/j-3GYXXXXXX9IOJ/node/
",\ "--dest
,hdfs:///output
",\ "--srcPattern
,.*[a-zA-Z,]+
"]
예 에 Amazon CloudFront 로그인 로드 HDFS
이 예제는 실행 중인 클러스터HDFS에 단계를 추가하여 Amazon CloudFront 로그인을 에 로드합니다. 프로세스에서 압축 형식을 Gzip( CloudFront기본값)에서 로 변경합니다LZO. 이는 를 사용하여 압축된 데이터가 압축이 풀릴 때 여러 맵으로 분할될 LZO 수 있으므로 Gzip과 마찬가지로 압축이 완료될 때까지 기다릴 필요가 없기 때문에 유용합니다. 이렇게 하면 Amazon 를 사용하여 데이터를 분석할 때 성능이 향상됩니다EMR. 또한 이 예제는 --groupBy
옵션에 지정된 정규식을 사용하여 주어진 시간 동안 모든 로그를 단일 파일로 결합하여 성능을 개선합니다. Amazon EMR 클러스터는 많은 크기의 Gzip LZO압축 파일을 처리할 때보다 몇 개의 크고 압축된 파일을 처리할 때 더 효율적입니다. LZO 파일을 분할하려면 파일을 인덱싱하고 hadoop-lzo 타사 라이브러리를 사용해야 합니다.
에 Amazon CloudFront 로그를 로드하려면 다음 명령을 HDFS입력하고 바꿉니다.j-3GYXXXXXX9IOK
클러스터 ID로 교체 amzn-s3-demo-bucket
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://amzn-s3-demo-bucket/cf
","--dest
,hdfs:///local
",\ "--groupBy
,.*XABCD12345678.([0-9]+-[0-9]+-[0-9]+-[0-9]+).*
",\ "--targetSize
,128
", "--outputCodec
,lzo
","--deleteOnSuccess
"]
다음 CloudFront 로그 파일에서 위 예제가 실행되는 경우를 생각해 보십시오.
s3://amzn-s3-demo-bucket1/cf/XABCD12345678.2012-02-23-01.HLUS3JKx.gz s3://amzn-s3-demo-bucket1/cf/XABCD12345678.2012-02-23-01.I9CNAZrg.gz s3://amzn-s3-demo-bucket1/cf/XABCD12345678.2012-02-23-02.YRRwERSA.gz s3://amzn-s3-demo-bucket1/cf/XABCD12345678.2012-02-23-02.dshVLXFE.gz s3://amzn-s3-demo-bucket1/cf/XABCD12345678.2012-02-23-02.LpLfuShd.gz
S3DistCp 는 파일을 복사하고, 연결하고, 다음 두 파일로 압축합니다. 여기서 파일 이름은 정규 표현식으로 만든 일치에 따라 결정됩니다.
hdfs:///local/2012-02-23-01.lzo hdfs:///local/2012-02-23-02.lzo