

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

# Pig 작업 제출
<a name="emr-pig-launch"></a>

이 섹션에서는 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 작업 제출
<a name="ConsoleCreatingaPigJob"></a>

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

**Pig 단계를 제출하려면**

1. [https://console.aws.amazon.com/emr](https://console.aws.amazon.com/emr/) Amazon EMR 콘솔을 엽니다.

1. **클러스터 생성**을 선택하여 Pig가 설치된 클러스터를 생성합니다. 클러스터를 생성하는 방법에 대한 단계는 [Amazon EMR 클러스터 계획 및 구성](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-gs.html#emr-getting-started-plan-and-configure)을 참조하세요.

1. [SSH를 사용하여 프라이머리 노드에 연결](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html)에 설명된 단계에 따라 터미널을 열고 클러스터의 프라이머리 노드에 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
   ```

1. 콘솔에서 **클러스터 목록**을 클릭하고 생성한 클러스터의 이름을 선택합니다.

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

1. **단계 추가** 대화 상자에서 다음을 수행합니다.
   + **단계 유형**에서 **Pig 프로그램**을 선택합니다.
   + **이름**에서 기본 이름(Pig 프로그램)을 수락하거나 새 이름을 입력합니다.
   + **스크립트 S3 위치**에 Pig 스크립트의 위치를 입력합니다. 예를 들어 **s3://elasticmapreduce/samples/pig-apache/do-reports2.pig**입니다.
   + **입력 S3 위치**에 입력 데이터의 위치를 입력합니다. 예를 들어 **s3://elasticmapreduce/samples/pig-apache/input**입니다.
   + **출력 S3 위치**에서 Amazon S3 출력 버킷의 이름을 입력하거나 찾아봅니다.
   + **인수**에서 필드를 비워 둡니다.
   + **실패 시 작업**에서 기본 옵션(**계속**)을 그대로 사용합니다.

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

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

## 를 사용하여 Pig 작업 제출 AWS CLI
<a name="emr-pig-submit-work"></a>

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

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

1. Pig가 설치된 클러스터를 시작하려면 다음 명령을 입력합니다. 이때 *myKey* 및 *amzn-s3-demo-bucket*을 각각 EC2 키 페어 및 Amazon S3 버킷으로 바꿉니다.

   ```
   aws emr create-cluster \
   --name "Test cluster" \
   --log-uri s3://amzn-s3-demo-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 줄 연속 문자(\$1)가 포함됩니다. Linux 명령에 사용하거나 제외할 수 있습니다. Windows에서는 제외시키거나 캐럿(^)으로 바꿉니다.

   `--instance-groups` 파라미터를 사용하지 않고 인스턴스 수를 지정하면 단일 마스터 노드가 시작되고 나머지 인스턴스는 코어 노드로 시작됩니다. 모든 노드에는 이 명령에 지정된 인스턴스 유형이 사용됩니다.
**참고**  
EMR 서비스 역할과 EC2 인스턴스 프로파일을 아직 생성하지 않았다면 `aws emr create-default-roles` 하위 명령을 입력하기 전에 `create-cluster`를 입력하여 생성합니다.

1. Pig 단계를 제출하려면 다음 명령을 입력합니다. 이때 *myClusterId* 및 *amzn-s3-demo-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://amzn-s3-demo-bucket/pig-apache/output]
   ```

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

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

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

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

에서 Amazon EMR 명령을 사용하는 방법에 대한 자세한 AWS CLI내용은 [AWS CLI 명령 참조](https://docs.aws.amazon.com/cli/latest/reference/emr)를 참조하세요.