Pig 작업 제출 - 아마존 EMR

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

Pig 작업 제출

이 섹션에서는 Amazon EMR 클러스터에 Pig 작업을 제출하는 방법을 보여줍니다. 다음 예제는 전송된 총 바이트 수, 상위 50개 IP 주소 목록, 상위 50개 외부 참조자 목록, Bing과 Google을 사용한 상위 50개 검색어 등이 포함된 보고서를 생성합니다. Pig 스크립트는 Amazon S3 버킷(s3://elasticmapreduce/samples/pig-apache/do-reports2.pig)에 있습니다. 입력 데이터는 Amazon S3 버킷(s3://elasticmapreduce/samples/pig-apache/input)에 있습니다. 출력은 Amazon S3 버킷에 저장됩니다.

Amazon EMR 콘솔을 사용하여 Pig 작업을 제출하세요

이 예제에서는 Amazon EMR 콘솔을 사용하여 클러스터에 Pig 단계를 추가하는 방법을 설명합니다.

Pig 단계를 제출하려면
  1. https://console.aws.amazon.com/emr 에서 아마존 EMR 콘솔을 엽니다.

  2. 클러스터 생성을 선택하여 Pig가 설치된 클러스터를 생성합니다. 클러스터를 생성하는 방법에 대한 단계는 Amazon EMR 클러스터 계획 및 구성을 참조하십시오.

  3. 다음을 사용하여 SSH 마스터 노드에 SSH 연결에 설명된 단계에 따라 터미널을 열고 클러스터의 마스터 노드로 이동합니다. 완료했으면 다음 단계를 실행합니다.

    sudo mkdir -p /home/hadoop/lib/pig/ sudo aws s3 cp s3://elasticmapreduce/libs/pig/0.3/piggybank-0.3-amzn.jar /home/hadoop/lib/pig/piggybank.jar
  4. 콘솔에서 클러스터 목록을 클릭하고 생성한 클러스터의 이름을 선택합니다.

  5. 단계 섹션으로 스크롤하여 섹션을 확장한 후 단계 추가를 선택합니다.

  6. 단계 추가 대화 상자에서 다음을 수행합니다.

    • 단계 유형에서 Pig 프로그램을 선택합니다.

    • 이름에서 기본 이름(Pig 프로그램)을 수락하거나 새 이름을 입력합니다.

    • 스크립트 S3 위치에 Pig 스크립트의 위치를 입력합니다. 예: s3://elasticmapreduce/samples/pig-apache/do-reports2.pig.

    • 입력 S3 위치에 입력 데이터의 위치를 입력합니다. 예: s3://elasticmapreduce/samples/pig-apache/input.

    • 출력 S3 위치에서 Amazon S3 출력 버킷의 이름을 입력하거나 찾아봅니다.

    • 인수에서 필드를 비워 둡니다.

    • 실패 시 작업에서 기본 옵션(계속)을 그대로 사용합니다.

  7. 추가를 선택합니다. 단계가 콘솔에 [Pending] 상태로 나타납니다.

  8. 단계의 상태는 단계가 실행됨에 따라 대기 중에서 실행 중을 거쳐 완료됨으로 바뀝니다. 상태를 업데이트하려면 작업 열 위의 새로 고침 아이콘을 선택합니다. 단계가 완료되면 Pig 단계의 출력 파일이 있는지 Amazon S3 버킷을 확인합니다.

를 사용하여 Pig 작업을 제출하십시오. AWS CLI

를 사용하여 Pig 단계를 제출하려면 AWS CLI

를 사용하여 클러스터를 시작하는 경우 --applications 파라미터를 사용하여 Pig를 설치합니다. AWS CLI Pig 단계를 제출하려면 --steps 파라미터를 사용합니다.

  1. Pig가 설치된 클러스터를 시작하려면 다음 명령을 입력하고 다음을 대체하십시오.myKey 그리고 DOC-EXAMPLE-BUCKET/ EC2키 페어와 Amazon S3 버킷의 이름을 입력합니다.

    aws emr create-cluster \ --name "Test cluster" \ --log-uri s3://DOC-EXAMPLE-BUCKET/ \ --release-label emr-5.36.2 \ --applications Name=Pig \ --use-default-roles \ --ec2-attributes KeyName=myKey \ --instance-type m5.xlarge \ --instance-count 3
    참고

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

    --instance-groups 파라미터를 사용하지 않고 인스턴스 수를 지정하면 단일 마스터 노드가 시작되고 나머지 인스턴스는 코어 노드로 시작됩니다. 모든 노드에는 이 명령에 지정된 인스턴스 유형이 사용됩니다.

    참고

    이전에 기본 EMR 서비스 역할 및 EC2 인스턴스 프로필을 생성하지 않은 경우, create-cluster 하위 명령을 입력하기 전에 입력하여 생성하십시오. aws emr create-default-roles

  2. Pig 단계를 제출하려면 다음 명령을 입력하고 다음을 대체하십시오.myClusterId 그리고 DOC-EXAMPLE-BUCKET 클러스터 ID 및 Amazon S3 버킷 이름을 사용하여

    aws emr add-steps \ --cluster-id myClusterId \ --steps Type=PIG,Name="Pig Program",ActionOnFailure=CONTINUE,Args=[-f,s3://elasticmapreduce/samples/pig-apache/do-reports2.pig,-p,INPUT=s3://elasticmapreduce/samples/pig-apache/input,-p,OUTPUT=s3://DOC-EXAMPLE-BUCKET/pig-apache/output]

    이 명령은 단계의 State를 확인하는 데 사용할 수 있는 단계 ID를 반환합니다.

  3. describe-step 명령을 사용하여 단계 상태를 쿼리합니다.

    aws emr describe-step --cluster-id myClusterId --step-id s-1XXXXXXXXXXA

    단계가 실행됨에 따라 단계의 StatePENDING에서 RUNNING, 그리고 COMPLETED로 바뀝니다. 단계가 완료되면 Pig 단계의 출력 파일이 있는지 Amazon S3 버킷을 확인합니다.

에서 Amazon EMR 명령을 사용하는 방법에 대한 자세한 내용은 AWS CLI 명령 참조를 참조하십시오. AWS CLI