Conexión a los flujos de trabajo de Apache Oozie con AWS Schema Conversion Tool - AWS Schema Conversion Tool

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Conexión a los flujos de trabajo de Apache Oozie con AWS Schema Conversion Tool

Puede utilizar la interfaz de línea de AWS SCT comandos (CLI) para convertir los flujos de trabajo de Apache Oozie a. AWS Step Functions Tras migrar las cargas de trabajo de Apache Hadoop a AmazonEMR, puede utilizar un servicio nativo Nube de AWS para organizar sus trabajos. Para obtener más información, consulte Conexión a Apache Hadoop.

AWS SCT convierte tus flujos de trabajo de Oozie en funciones que no son AWS Step Functions compatibles y AWS Lambda las utiliza para emularlas. AWS Step Functions Además, AWS SCT convierte las propiedades de tu trabajo en Oozie en. AWS Systems Manager

Para convertir los flujos de trabajo de Apache Oozie, asegúrate de usar la AWS SCT versión 1.0.671 o superior. Además, familiarícese con la interfaz de la línea de comandos de AWS SCT. Para obtener más información, consulte CLIReferencia para AWS Schema Conversion Tool.

Requisitos previos para utilizar Apache Oozie como origen

Se requieren los siguientes requisitos previos para conectarse a Apache Oozie con el. AWS SCT CLI

  • Cree un bucket de Amazon S3 para almacenar las definiciones de las máquinas de estado. Puede usar estas definiciones para configurar sus máquinas de estado. Para obtener más información, consulte Crear un bucket en la Guía del usuario de Amazon S3.

  • Cree un rol AWS Identity and Access Management (IAM) con la AmazonS3FullAccess política. AWS SCT utiliza este IAM rol para acceder a su bucket de Amazon S3.

  • Anote su clave AWS secreta y su clave de acceso AWS secreta. Para obtener más información sobre las claves de AWS acceso, consulte Administrar las claves de acceso en la Guía del IAM usuario.

  • Guarde sus AWS credenciales y la información sobre su bucket de Amazon S3 en el perfil de AWS servicio en la configuración global de la aplicación. A continuación, AWS SCT utiliza este perfil de AWS servicio para trabajar con sus AWS recursos. Para obtener más información, consulte Gestión de perfiles en AWS Schema Conversion Tool.

Para trabajar con los flujos de trabajo de Apache Oozie de origen, se AWS SCT requiere la estructura específica de los archivos de origen. Cada una de las carpetas de la aplicación debe incluir el archivo job.properties. Este archivo incluye pares clave-valor de las propiedades del trabajo. Además, cada una de las carpetas de la aplicación debe incluir el archivo workflow.xml. Este archivo describe los nodos de acción y los nodos de flujo de control del flujo de trabajo.

Conexión a Apache Oozie como origen

Utilice el siguiente procedimiento para conectarse a los archivos de origen de Apache Oozie.

Para conectarse a Apache Oozie en el AWS SCT CLI
  1. Cree un AWS SCT CLI script nuevo o edite una plantilla de escenario existente. Por ejemplo, puede descargar y editar la plantilla de OozieConversionTemplate.scts. Para obtener más información, consulte Obtener CLI escenarios.

  2. Configure los ajustes AWS SCT de la aplicación.

    El siguiente ejemplo de código guarda la configuración de aplicación y permite almacenar las contraseñas en el proyecto. Puede utilizar esta configuración guardada en otros proyectos.

    SetGlobalSettings -save: 'true' -settings: '{ "store_password": "true" }' /
  3. Cree un AWS SCT proyecto nuevo.

    El siguiente ejemplo de código crea el proyecto de oozie en la carpeta c:\sct.

    CreateProject -name: 'oozie' -directory: 'c:\sct' /
  4. Agregue la carpeta con los archivos de Apache Oozie de origen al proyecto mediante el comando AddSource. Utilice el valor APACHE_OOZIE para el parámetro vendor. Además, proporcione valores para los siguientes parámetros obligatorios: name y mappingsFolder.

    El siguiente ejemplo de código agrega Apache Oozie como fuente en su AWS SCT proyecto. En este ejemplo, se crea un objeto de origen con el nombre OOZIE. Utilice este nombre de objeto para agregar reglas de asignación. Tras ejecutar este ejemplo de código, AWS SCT utiliza la c:\oozie carpeta para cargar los archivos fuente en el proyecto.

    AddSource -name: 'OOZIE' -vendor: 'APACHE_OOZIE' -mappingsFolder: 'c:\oozie' /

    Puede usar este ejemplo y los ejemplos siguientes en Windows.

  5. Conéctese a sus archivos de Apache Oozie de origen mediante el comando ConnectSource. Utilice el nombre del objeto de origen que definió en el paso anterior.

    ConnectSource -name: 'OOZIE' -mappingsFolder: 'c:\oozie' /
  6. Guarde el CLI script. A continuación, añada la información de conexión de su AWS Step Functions servicio.

Permisos para usar AWS Lambda las funciones del paquete de extensiones

Para las funciones de código fuente que AWS Step Functions no son compatibles, AWS SCT crea un paquete de extensiones. Este paquete de extensiones incluye AWS Lambda funciones que emulan las funciones de origen.

Para usar este paquete de extensiones, cree un rol AWS Identity and Access Management (IAM) con los siguientes permisos.

{ "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:::*/*" ] } ] }

Para aplicar el paquete de extensiones, se AWS SCT necesita un IAM rol con los siguientes permisos.

{ "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" ] } ] }

Conectarse a AWS Step Functions como objetivo

Utilice el siguiente procedimiento para conectarse AWS Step Functions como objetivo.

Para conectarse a AWS Step Functions en el AWS SCT CLI
  1. Abra el CLI script que incluye la información de conexión de los archivos fuente de Apache Oozie.

  2. Agregue la información sobre su objetivo de migración al AWS SCT proyecto mediante el AddTarget comando. Utilice el valor STEP_FUNCTIONS para el parámetro vendor. Además, proporcione valores para los siguientes parámetros obligatorios: name y profile.

    El siguiente ejemplo de código AWS Step Functions se agrega como fuente a tu AWS SCT proyecto. En este ejemplo, se crea un objeto de origen con el nombre AWS_STEP_FUNCTIONS. Utilice este nombre de objeto al crear reglas de asignación. Además, en este ejemplo se utiliza un perfil de AWS SCT servicio que creó en el paso de requisitos previos. Asegúrese de reemplazar profile_name con el nombre de tu perfil.

    AddTarget -name: 'AWS_STEP_FUNCTIONS' -vendor: 'STEP_FUNCTIONS' -profile: 'profile_name' /

    Si no utiliza el perfil de AWS servicio, asegúrese de proporcionar valores para los siguientes parámetros obligatorios: accessKeysecretKey,awsRegion, ys3Path. Utilice estos parámetros para especificar la clave de acceso AWS AWS secreta, la clave secreta y la ruta a su bucket de Amazon S3. Región de AWS

  3. Conéctese a AWS Step Functions mediante el ConnectTarget comando. Utilice el nombre del objeto de origen que definió en el paso anterior.

    El siguiente ejemplo de código se conecta al objeto de destino de AWS_STEP_FUNCTIONS utilizando su perfil de servicios de AWS . Asegúrese de reemplazar profile_name con el nombre de tu perfil.

    ConnectTarget -name: 'AWS_STEP_FUNCTIONS' -profile: 'profile_name' /
  4. Guarda tu CLI guion. A continuación, agregue reglas de asignación y comandos de migración. Para obtener más información, consulte Convertir los flujos de trabajo de Oozie;.