AWS Data Pipeline 신규 고객은 더 이상 이용할 수 없습니다. 의 기존 고객 AWS Data Pipeline 정상적으로 서비스를 계속 사용할 수 있습니다. 자세히 알아보기
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
EmrActivity
EMR 클러스터 실행.
AWS Data Pipeline 은 Amazon과 다른 단계 형식을 AWS Data Pipeline 사용합니다EMR. 예를 들어 step 필드의 JAR 이름 뒤에 쉼표로 구분된 인수를 사용합니다. EmrActivity
다음 예제는 EMR Amazon용으로 포맷된 단계와 AWS Data Pipeline 그에 상응하는 단계를 보여줍니다.
s3://example-bucket/MyWork.jar arg1 arg2 arg3
"s3://example-bucket/MyWork.jar,arg1,arg2,arg3"
예시
다음은 이 객체 유형의 예제입니다. 이 예에서는 이전 버전의 Amazon을 사용합니다EMR. 사용 중인 Amazon EMR 클러스터 버전에서 이 예제가 정확한지 확인하십시오.
이 객체는 동일한 파이프라인 정의 파일에서 정의하려는 다른 세 객체를 참조합니다. MyEmrCluster
는 EmrCluster
객체이고 MyS3Input
및 MyS3Output
는 S3DataNode
객체입니다.
참고
이 예제에서는 step
필드를 원하는 클러스터 문자열 (Pig 스크립트, Hadoop 스트리밍 클러스터, 매개 변수를 JAR 포함한 사용자 지정 문자열 등) 으로 바꿀 수 있습니다.
하둡 2.x (3.x) AMI
{ "id" : "MyEmrActivity", "type" : "EmrActivity", "runsOn" : { "ref" : "MyEmrCluster" }, "preStepCommand" : "scp remoteFiles localFiles", "step" : ["s3://mybucket/myPath/myStep.jar,firstArg,secondArg,-files,s3://mybucket/myPath/myFile.py,-input,s3://myinputbucket/path,-output,s3://myoutputbucket/path,-mapper,myFile.py,-reducer,reducerName","s3://mybucket/myPath/myotherStep.jar,..."], "postStepCommand" : "scp localFiles remoteFiles", "input" : { "ref" : "MyS3Input" }, "output" : { "ref" : "MyS3Output" } }
참고
한 단계에서 애플리케이션에 인수를 전달하려면 다음 예제와 같이 스크립트의 경로에 리전을 지정해야 합니다. 또한 전달하는 인수를 이스케이프해야 합니다. 예를 들어, script-runner.jar
를 사용하여 셸 스크립트를 실행하고 인수를 스크립트에 전달하려면 이를 구분하는 쉼표를 이스케이프해야 합니다. 다음은 이를 수행하는 방법을 설명하는 단계 슬롯입니다.
"step" : "s3://
eu-west-1
.elasticmapreduce/libs/script-runner/script-runner.jar,s3://datapipeline/echo.sh,a\\\\,b\\\\,c"
이 단계에서는 script-runner.jar
를 사용하여 echo.sh
셸 스크립트를 실행하고 a
, b
및 c
를 단일 인수로 스크립트에 전달합니다. 첫 번째 이스케이프 문자는 결과 인수에서 제거되므로 다시 이스케이프해야 할 수도 있습니다. 예를 들어 File\.gz
인수로 사용하는 경우 를 사용하여 JSON 이스케이프할 수 있습니다. File\\\\.gz
그러나 첫 번째 이스케이프가 삭제되었기 때문에 File\\\\\\\\.gz
를 사용해야 합니다.
구문
액체 호출 필드 | 설명 | 슬롯 유형 |
---|---|---|
schedule | 이 객체는 예약 간격을 실행할 때 호출됩니다. 이 객체의 종속 실행 순서를 설정하려면 다른 객체로 일정 참조를 지정합니다. 사용자가 객체에서 일정을 명확히 설정하여(예: "schedule": {"ref":
"DefaultSchedule"} 지정)하여 이 요건을 충족할 수 있습니다. 대부분의 경우에서는 모든 객체가 상속할 수 있도록 일정 참조를 기본 파이프라인 객체에 두는 것이 좋습니다. 또는 파이프라인에 일정 트리가 있는 경우(마스터 일정 안의 일정) 사용자가 일정 참조가 있는 부모 객체를 생성할 수 있습니다. 선택형 일정 구성 예제에 대한 자세한 내용은 https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html 단원을 참조하십시오. |
참조 객체 (예: “schedule”: {"ref”:” myScheduleId “} |
필수 그룹(다음 중 하나를 제공해야 함) | 설명 | 슬롯 유형 |
---|---|---|
runsOn | 이 작업이 실행될 Amazon EMR 클러스터입니다. | 참조 객체 (예: "runsOn“: {" ref”:” myEmrCluster Id "} |
workerGroup | 작업자 그룹입니다. 이것은 작업 라우팅에 사용됩니다. workerGroup 이 있을 때 runsOn 값을 제공하면 workerGroup 이 무시됩니다. |
String |
선택 필드 | 설명 | 슬롯 유형 |
---|---|---|
attemptStatus | 원격 활동에서 가장 최근에 보고된 상태입니다. | String |
attemptTimeout | 원격 작업 완료의 제한 시간입니다. 이 필드를 설정하면 설정된 시작 시간 이내에 완료되지 않는 원격 활동을 재시도할 수 있습니다. | 기간 |
dependsOn | 실행 가능한 다른 객체의 종속성을 지정합니다. | 참조 객체 (예: "dependsOn“: {" ref”:” myActivityId “} |
failureAndRerun모드 | 종속 요소에 장애가 있거나 재시도될 때의 소비자 노드 거동을 설명합니다. | 열거 |
입력 | 입력 데이터의 위치입니다. | 참조 객체 (예: “입력”: {"ref”:” myDataNode Id "} |
lateAfterTimeout | 파이프라인 시작 후 객체가 완료되어야 하는 경과 시간입니다. 스케줄 유형이 ondemand (으)로 설정되지 않은 경우에만 트리거됩니다. |
기간 |
maxActiveInstances | 구성요소의 동시 활성 인스턴스 최대수입니다. 재실행은 활성 인스턴스의 수에 포함되지 않습니다. | Integer |
maximumRetries | 장애 시 재시도 최대 횟수. | Integer |
onFail | 현재 객체 장애 시 실행할 작업입니다. | 참조 객체 (예: "onFail“: {" ref”:” myActionId “} |
onLateAction | 객체가 아직 예약되지 않았거나 아직 완료되지 않은 경우에 트리거되어야 하는 작업입니다. | 참조 객체 (예: "onLateAction“: {" ref”:” myActionId “} |
onSuccess | 현재 객체가 성공하면 실행할 작업입니다. | 참조 객체 (예: "onSuccess“: {" ref”:” myActionId “} |
output | 출력 데이터의 위치입니다. | 참조 객체 (예: “출력”: {"ref”:” myDataNode Id "} |
parent | 슬롯을 상속할 현재 객체의 부모입니다. | 참조 객체 (예: “부모”: {"ref”:” myBaseObject Id "} |
pipelineLogUri | Amazon S3 URI (예: 파이프라인 로그 업로드를 위한 's3://BucketName/Prefix/) | String |
postStepCommand | 모든 단계가 끝난 후에 실행될 셸 스크립트입니다. 스크립트를 여러 개(최대 255개) 지정하려면 postStepCommand 필드를 여러 개 추가합니다. |
String |
precondition | 또는 사전 조건을 정의합니다. 모든 사전 조건이 충족될 때까지 데이터 노드는 READY "“로 표시되지 않습니다. | 참조 객체 (예: “전제 조건”: {"ref”:” “} myPreconditionId |
preStepCommand | 임의 단계가 실행되기 전에 실행될 셸 스크립트입니다. 스크립트를 여러 개(최대 255개) 지정하려면 preStepCommand 필드를 여러 개 추가합니다. |
String |
reportProgressTimeout | 원격 작업에서 reportProgress 를 연속으로 호출하는 제한 시간입니다. 이 필드를 설정하면 지정된 기간 동안 진행 상황을 보고하지 않는 원격 활동은 중단된 것으로 간주하고 재시도할 수 있습니다. |
기간 |
resizeClusterBefore실행 중 |
이 활동을 수행하기 전에 입력 또는 출력으로 지정된 DynamoDB 테이블이 포함되도록 클러스터 크기를 조정합니다. 참고
|
불 |
resizeClusterMax인스턴스 | 크기 조정 알고리즘으로 요청할 수 있는 인스턴스의 최대 수에 대한 제한입니다. | Integer |
retryDelay | 두 번의 재시도 사이의 제한 시간 간격입니다. | 기간 |
scheduleType | 일정 유형을 사용하여 파이프라인 정의에 있는 객체의 일정을 간격 시작 시점으로 또는 종료 시점으로 지정할 수 있습니다. 값은 cron , ondemand 및 timeseries 입니다. timeseries 일정 조정은 각 간격이 종료될 때 인스턴스 일정이 지정됩니다. cron 일정 조정은 각 간격이 시작될 때 인스턴스 일정이 지정됩니다. ondemand 일정을 사용하면 활성화될 때마다 한 번씩 파이프라인을 실행할 수 있습니다. 그러므로 다시 실행하기 위해 파이프라인을 복제하거나 다시 생성할 필요가 없습니다. ondemand 일정을 사용하려면 기본 객체에서 지정해야 하며, 이것이 파이프라인의 객체에 지정된 유일한 scheduleType 이어야 합니다. ondemand 파이프라인을 사용하려면 후속 실행마다 ActivatePipeline 작업을 호출합니다. |
열거 |
단계 | 클러스터가 실행할 하나 이상의 단계입니다. 최대 255개까지 여러 단계를 지정하려면 여러 단계 필드를 추가합니다. JAR이름 뒤에는 쉼표로 구분된 인수를 사용합니다 (예: "”). s3://example-bucket/MyWork.jar,arg1,arg2,arg3 |
String |
실행 시간 필드 | 설명 | 슬롯 유형 |
---|---|---|
@activeInstances | 현재 예약되어 있는 활성 인스턴스 객체의 목록입니다. | 참조 객체, 예: "activeInstances“: {" ref”:” Id "} myRunnableObject |
@actualEndTime | 이 객체의 실행이 완료된 시간입니다. | DateTime |
@actualStartTime | 이 객체의 실행이 시작된 시간입니다. | DateTime |
cancellationReason | 이 객체가 취소된 cancellationReason 경우 | String |
@cascadeFailedOn | 객체 실패가 발생한 종속 체인에 대한 설명입니다. | 참조 객체 (예: "cascadeFailedOn“: {" ref”:” myRunnableObject Id "} |
emrStepLog | Amazon EMR 단계 로그는 EMR 활동 시도 시에만 사용 가능 | String |
errorId | 이 객체가 실패한 경우의 errorId 입니다. |
String |
errorMessage | 이 객체가 실패한 경우의 errorMessage 입니다. |
String |
errorStackTrace | 이 객체가 실패한 경우의 오류 스택 트레이스입니다. | String |
@finishedTime | 이 객체의 실행이 완료된 시간입니다. | DateTime |
hadoopJobLog | 하둡 작업 로그는 EMR 기반 활동 시도 시 사용할 수 있습니다. | String |
@healthStatus | 종료 상태에 도달한 마지막 객체 인스턴스의 성공 또는 실패를 반영하는 객체의 상태입니다. | String |
@healthStatusFromInstanceId | 종료 상태에 도달한 마지막 인스턴스 객체의 ID입니다. | String |
@ 시간 healthStatusUpdated | 상태가 마지막으로 업데이트된 시간입니다. | DateTime |
hostname | 작업 시도를 선택한 클라이언트의 호스트 이름입니다. | String |
@lastDeactivatedTime | 이 객체가 마지막으로 비활성화된 시간입니다. | DateTime |
@ latestCompletedRun 시간 | 실행이 완료된 최근 실행 시간입니다. | DateTime |
@latestRunTime | 실행이 예약된 최근 실행 시간입니다. | DateTime |
@nextRunTime | 다음으로 예약된 실행 시간입니다. | DateTime |
reportProgressTime | 원격 활동에서 진행 상황을 보고한 가장 최근 시간입니다. | DateTime |
@scheduledEndTime | 객체의 일정 종료 시간. | DateTime |
@scheduledStartTime | 객체의 일정 시작 시간. | DateTime |
@상태 | 이 객체의 상태입니다. | String |
@version | 객체와 함께 생성된 파이프라인 버전입니다. | String |
@waitingOn | 이 객체가 대기 중인 종속 요소 목록에 대한 설명입니다. | 참조 객체 (예: "waitingOn“: {" ref”:” myRunnableObject Id "} |
시스템 필드 | 설명 | 슬롯 유형 |
---|---|---|
@오류 | 잘못 형성된 객체를 설명하는 오류. | String |
@pipelineId | 이 객체가 속하는 파이프라인의 ID. | String |
@sphere | 객체의 타원 무늬는 수명 주기 내 위치를 나타냅니다. Component Objects는 Attempt Objects를 실행하는 Instance Objects를 야기합니다. | String |