기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
를 사용하여 Apache Oozie 워크플로에 연결 AWS Schema Conversion Tool
AWS SCT 명령줄 인터페이스(CLI)를 사용하여 Apache Oozie 워크플로를 로 변환할 수 있습니다 AWS Step Functions. Apache Hadoop 워크로드를 Amazon EMR로 마이그레이션한 후의 네이티브 서비스를 사용하여 작업을 오케스트레이션 AWS 클라우드 할 수 있습니다. 자세한 내용은 Apache Hadoop에 연결 단원을 참조하십시오.
AWS SCT 는 Oozie 워크플로를 로 변환 AWS Step Functions 하고 AWS Lambda 를 사용하여가 지원하지 AWS Step Functions 않는 기능을 에뮬레이션합니다. 또한 Oozie 작업 속성을 로 AWS SCT 변환합니다 AWS Systems Manager.
Apache Oozie 워크플로를 변환하려면 AWS SCT 버전 1.0.671 이상을 사용해야 합니다. 또한 AWS SCT의 명령줄 인터페이스를 숙지해야 합니다. 자세한 내용은 에 대한 CLI 참조 AWS Schema Conversion Tool 단원을 참조하십시오.
Apache Oozie를 소스로 사용하기 위한 사전 조건
AWS SCT CLI를 사용하여 Apache Oozie에 연결하려면 다음과 같은 사전 조건이 필요합니다.
-
상태 시스템 정의를 저장할 Amazon S3 버킷을 생성합니다. 이러한 정의를 사용하여 상태 시스템을 구성할 수 있습니다. 자세한 내용은 Amazon S3 사용 설명서의 버킷 생성을 참조하세요.
-
AmazonS3FullAccess
정책을 사용하여 AWS Identity and Access Management (IAM) 역할을 생성합니다. AWS SCT 는이 IAM 역할을 사용하여 Amazon S3 버킷에 액세스합니다. -
AWS 보안 암호 키와 AWS 보안 액세스 키를 기록해 둡니다. AWS 액세스 키에 대한 자세한 내용은 IAM 사용 설명서의 액세스 키 관리를 참조하세요.
-
글로벌 애플리케이션 설정의 AWS 서비스 프로필에 자격 AWS 증명과 Amazon S3 버킷에 대한 정보를 저장합니다. 그런 다음이 AWS 서비스 프로파일을 AWS SCT 사용하여 AWS 리소스로 작업합니다. 자세한 내용은 에서 프로필 관리 AWS Schema Conversion Tool 단원을 참조하십시오.
소스 Apache Oozie 워크플로를 사용하려면에 소스 파일의 특정 구조가 AWS SCT 필요합니다. 각 애플리케이션 폴더에는 job.properties
파일이 포함되어야 합니다. 이 파일에는 작업 속성의 키-값 페어가 포함되어 있습니다. 또한 각 애플리케이션 폴더에는 workflow.xml
파일이 포함되어야 합니다. 이 파일은 워크플로의 작업 노드와 제어 흐름 노드를 설명합니다.
Apache Oozie에 소스로 연결
다음 절차에 따라 Apache Oozie 소스 파일에 연결합니다.
AWS SCT CLI에서 Apache Oozie에 연결하려면
-
새 AWS SCT CLI 스크립트를 생성하거나 기존 시나리오 템플릿을 편집합니다. 예를 들어
OozieConversionTemplate.scts
템플릿을 다운로드하여 편집할 수 있습니다. 자세한 내용은 CLI 시나리오 가져오기 단원을 참조하십시오. -
AWS SCT 애플리케이션 설정을 구성합니다.
다음 코드 예제에서는 애플리케이션 설정을 저장하고 프로젝트에 암호를 저장할 수 있도록 합니다. 이렇게 저장된 설정은 다른 프로젝트에서 사용할 수 있습니다.
SetGlobalSettings -save: 'true' -settings: '{ "store_password": "true" }' /
-
새 AWS SCT 프로젝트를 생성합니다.
다음 코드 예제는
c:\sct
폴더에oozie
프로젝트를 만듭니다.CreateProject -name: 'oozie' -directory: 'c:\sct' /
-
AddSource
명령을 사용하여 소스 Apache Oozie 파일이 있는 폴더를 프로젝트에 추가합니다.vendor
파라미터에 대해APACHE_OOZIE
값을 사용해야 합니다. 또한 필수 파라미터name
및mappingsFolder
의 값을 제공해야 합니다.다음 코드 예제에서는 Apache Oozie를 AWS SCT 프로젝트의 소스로 추가합니다. 이 예제에서는 이름이
OOZIE
인 소스 객체를 만듭니다. 이 객체 이름을 사용하여 매핑 규칙을 추가합니다. 이 코드 예제를 실행한 후는c:\oozie
폴더를 AWS SCT 사용하여 프로젝트에 소스 파일을 로드합니다.AddSource -name: 'OOZIE' -vendor: 'APACHE_OOZIE' -mappingsFolder: 'c:\oozie' /
Windows에서 이 예제와 다음 예제를 사용할 수 있습니다.
-
ConnectSource
명령을 사용하여 소스 Apache Oozie 파일에 연결합니다. 이전 단계에서 정의한 소스 객체의 이름을 사용합니다.ConnectSource -name: 'OOZIE' -mappingsFolder: 'c:\oozie' /
-
CLI 스크립트를 저장합니다. 그런 다음 AWS Step Functions 서비스에 대한 연결 정보를 추가합니다.
확장 팩에서 AWS Lambda 함수를 사용하기 위한 권한
가 지원하지 AWS Step Functions 않는 소스 함수의 경우는 확장 팩을 AWS SCT 생성합니다. 이 확장 팩에는 소스 AWS Lambda 함수를 에뮬레이션하는 함수가 포함되어 있습니다.
이 확장 팩을 사용하려면 다음 권한으로 AWS Identity and Access Management (IAM) 역할을 생성합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "lambda", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:*:498160209112:function:LoadParameterInitialState:*", "arn:aws:lambda:*:498160209112:function:EvaluateJSPELExpressions:*" ] }, { "Sid": "emr", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeStep", "elasticmapreduce:AddJobFlowSteps" ], "Resource": [ "arn:aws:elasticmapreduce:*:498160209112:cluster/*" ] }, { "Sid": "s3", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::*/*" ] } ] }
확장 팩을 적용하려면 다음 권한이 있는 IAM 역할이 AWS SCT 필요합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:GetRole", "iam:ListRolePolicies", "iam:CreateRole", "iam:TagRole", "iam:PutRolePolicy", "iam:DeleteRolePolicy", "iam:DeleteRole", "iam:PassRole" ], "Resource": [ "arn:aws:iam::ACCOUNT_NUMBER:role/sct/*" ] }, { "Effect": "Allow", "Action": [ "iam:GetRole", "iam:ListRolePolicies" ], "Resource": [ "arn:aws:iam::ACCOUNT_NUMBER:role/lambda_LoadParameterInitialStateRole", "arn:aws:iam::ACCOUNT_NUMBER:role/lambda_EvaluateJSPELExpressionsRole", "arn:aws:iam::ACCOUNT_NUMBER:role/stepFunctions_MigratedOozieWorkflowRole" ] }, { "Effect": "Allow", "Action": [ "lambda:GetFunction", "lambda:CreateFunction", "lambda:UpdateFunctionCode", "lambda:DeleteFunction" ], "Resource": [ "arn:aws:lambda:*:ACCOUNT_NUMBER:function:LoadParameterInitialState", "arn:aws:lambda:*:ACCOUNT_NUMBER:function:EvaluateJSPELExpressions" ] } ] }
에 AWS Step Functions 대상으로 연결
다음 절차에 AWS Step Functions 따라를 대상으로 연결합니다.
AWS SCT CLI AWS Step Functions 에서에 연결하려면
-
Apache Oozie 소스 파일의 연결 정보가 포함된 CLI 스크립트를 엽니다.
-
AddTarget
명령을 사용하여 AWS SCT 프로젝트의 마이그레이션 대상에 대한 정보를 추가합니다.vendor
파라미터에 대해STEP_FUNCTIONS
값을 사용해야 합니다. 또한 필수 파라미터name
및profile
의 값을 제공해야 합니다.다음 코드 예제에서는를 AWS SCT 프로젝트의 소스 AWS Step Functions 로 추가합니다. 이 예제에서는 이름이
AWS_STEP_FUNCTIONS
인 대상 객체를 만듭니다. 매핑 규칙을 생성할 때 이 객체 이름을 사용합니다. 또한이 예제에서는 사전 조건 단계에서 생성한 AWS SCT 서비스 프로파일을 사용합니다.profile_name
을 프로필 이름으로 바꿔야 합니다.AddTarget -name: 'AWS_STEP_FUNCTIONS' -vendor: 'STEP_FUNCTIONS' -profile: '
profile_name
' /AWS 서비스 프로파일을 사용하지 않는 경우 ,
accessKey
,secretKey
awsRegion
및 필수 파라미터에 값을 제공해야 합니다s3Path
. 이러한 파라미터를 사용하여 AWS 보안 액세스 키, AWS 보안 키 AWS 리전, 및 Amazon S3 버킷의 경로를 지정합니다. -
ConnectTarget
명령을 AWS Step Functions 사용하여에 연결합니다. 이전 단계에서 정의한 대상 객체의 이름을 사용합니다.다음 코드 예제는 AWS 서비스 프로필을 사용하여
AWS_STEP_FUNCTIONS
대상 객체에 연결합니다.profile_name
을 프로필 이름으로 바꿔야 합니다.ConnectTarget -name: 'AWS_STEP_FUNCTIONS' -profile: '
profile_name
' / -
CLI 스크립트를 저장합니다. 그 다음으로, 매핑 규칙과 마이그레이션 명령을 추가합니다. 자세한 내용은 Oozie 워크플로 변환 단원을 참조하십시오.