사용자 지정 단계 제출 JAR - 아마존 EMR

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

사용자 지정 단계 제출 JAR

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

하둡 MapReduce 애플리케이션 구축에 대한 자세한 내용은 Apache Hadoop MapReduce 설명서의 자습서를 참조하십시오.

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

콘솔을 사용하여 사용자 지정 JAR 단계를 제출하십시오.

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

콘솔을 사용하여 사용자 지정 JAR 단계를 제출하려면
  1. https://console.aws.amazon.com/emr 에서 아마존 EMR 콘솔을 엽니다.

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

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

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

    • 단계 유형에서는 사용자 지정을 선택합니다JAR.

    • 이름에 기본 이름 (사용자 지정JAR) 을 그대로 사용하거나 새 이름을 입력합니다.

    • JARS3 위치의 경우 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키 페어의 이름으로 바꾸고 mybucket 버킷 이름을 입력하세요.

    aws emr create-cluster --name "Test cluster" --release-label emr-7.2.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 인스턴스 프로필을 생성하지 않은 경우, create-cluster 하위 명령을 입력하기 전에 입력하여 생성하십시오. aws emr create-default-roles

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

타사 종속성

프로그램에서 사용하기 JARs 위해 MapReduce 클래스 경로에 포함해야 하는 경우가 있을 수 있습니다. 이 작업에는 두 가지 옵션이 있습니다.

  • 클러스터를 시작하고 다음을 사용하여 사용자 지정 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.2.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/mybucket/myfolder/myConfig.json

    myConfig.json:

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

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