사용자 지정 JAR 단계 제출 - Amazon EMR

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

사용자 지정 JAR 단계 제출

사용자 지정 JAR은 Amazon S3에 업로드할 수 있는 컴파일된 Java 프로그램을 실행합니다. 시작하려는 Hadoop의 버전에 맞게 프로그램을 컴파일하고 Amazon EMR CUSTOM_JAR 단계를 제출해야 합니다. JAR 파일 컴파일에 대한 자세한 내용은 Amazon EMR을 사용하여 바이너리 빌드 섹션을 참조하세요.

Hadoop MapReduce 애플리케이션 빌드 방법에 대한 자세한 내용은 Apache Hadoop 설명서에서 MapReduce Tutorial을 참조하세요.

이 섹션에서는 Amazon EMR에서 사용자 지정 JAR 단계 제출의 기본 사항을 다룹니다. 사용자 지정 JAR 단계를 제출하면 Java 프로그래밍 언어를 사용하여 데이터를 처리하기 위한 스크립트를 작성할 수 있습니다.

콘솔을 사용하여 사용자 지정 JAR 단계 제출

이 예제는 Amazon EMR 콘솔을 사용하여 사용자 지정 JAR 단계를 실행 중인 클러스터에 제출하는 방법을 설명합니다.

콘솔을 사용하여 사용자 지정 JAR 단계를 제출하는 방법
  1. https://console.aws.amazon.com/emr Amazon EMR 콘솔을 엽니다.

  2. 클러스터 목록에서 클러스터의 이름을 선택합니다.

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

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

    • Step type(단계 유형)에서 Custom JAR(사용자 지정 JAR)을 선택합니다.

    • Name(이름)에서 기본 이름(Custom JAR)을 수락하거나 새 이름을 입력합니다.

    • JAR S3 location(JAR S3 위치)에서 JAR 파일의 위치를 입력하거나 찾아봅니다. JAR 위치는 S3에 대한 경로 또는 클래스 경로의 정규화된 Java 클래스일 수 있습니다.

    • Arguments(인수)에 필수 인수를 공백으로 구분된 문자열로 입력하거나 필드를 비워 둡니다.

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

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

  6. 단계의 상태는 단계가 실행됨에 따라 대기 중에서 실행 중을 거쳐 완료됨으로 바뀝니다. 상태를 업데이트하려면 Actions(작업) 열 위의 Refresh(새로 고침) 아이콘을 선택합니다.

클러스터 시작 및를 사용하여 사용자 지정 JAR 단계 제출 AWS CLI

클러스터를 시작하고를 사용하여 사용자 지정 JAR 단계를 제출하려면 AWS CLI

클러스터를 시작하고를 사용하여 사용자 지정 JAR 단계를 제출하려면 --steps 파라미터와 함께 create-cluster 하위 명령을 AWS CLI입력합니다.

  • 클러스터를 시작하고 사용자 지정 JAR 단계를 제출하려면 다음 명령을 입력하고 myKey를 EC2 키 페어의 이름으로 바꾸며 amzn-s3-demo-bucket을 버킷 이름으로 바꿉니다.

    aws emr create-cluster --name "Test cluster" --release-label emr-7.7.0 \ --applications Name=Hue Name=Hive Name=Pig --use-default-roles \ --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3 \ --steps Type=CUSTOM_JAR,Name="Custom JAR Step",ActionOnFailure=CONTINUE,Jar=pathtojarfile,Args=["pathtoinputdata","pathtooutputbucket","arg1","arg2"]
    참고

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

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

    참고

    Amazon EMR 서비스 역할과 EC2 인스턴스 프로파일을 아직 생성하지 않았다면 aws emr create-default-roles 하위 명령을 입력하기 전에 create-cluster를 입력하여 생성합니다.

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

타사 종속성

때로는 프로그램과 함께 사용하기 위해 MapReduce 클래스 경로 JAR에 포함할 필요가 있을 수 있습니다. 이 작업에는 두 가지 옵션이 있습니다.

  • 클러스터 시작 및를 사용하여 사용자 지정 JAR 단계 제출 AWS CLI의 절차의 경우 --libjars s3://URI_to_JAR을 단계 옵션에 포함합니다.

  • mapred-site.xml에서 수정된 mapreduce.application.classpath 설정을 사용하여 클러스터를 시작합니다. mapred-site 구성 분류를 사용하십시오. 를 사용하여 단계를 사용하여 클러스터를 생성하려면 다음과 같습니다 AWS CLI.

    aws emr create-cluster --release-label emr-7.7.0 \ --applications Name=Hue Name=Hive Name=Pig --use-default-roles \ --instance-type m5.xlarge --instance-count 2 --ec2-attributes KeyName=myKey \ --steps Type=CUSTOM_JAR,Name="Custom JAR Step",ActionOnFailure=CONTINUE,Jar=pathtojarfile,Args=["pathtoinputdata","pathtooutputbucket","arg1","arg2"] \ --configurations https://s3.amazonaws.com/amzn-s3-demo-bucket/myfolder/myConfig.json

    myConfig.json:

    [ { "Classification": "mapred-site", "Properties": { "mapreduce.application.classpath": "path1,path2" } } ]

    쉼표로 구분된 경로 목록을 각 작업의 JVM 클래스 경로에 추가해야 합니다.