Convertir los flujos de trabajo de Oozie a con AWS Step FunctionsAWS 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.

Convertir los flujos de trabajo de Oozie a con AWS Step FunctionsAWS Schema Conversion Tool

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

Descripción general de la conversión

El código fuente de Apache Oozie incluye nodos de acción, nodos de flujo de control y propiedades de trabajo. Los nodos de acción definen los trabajos que se ejecutan en el flujo de trabajo de Apache Oozie. Cuando utiliza Apache Oozie para organizar el clúster de Apache Hadoop, un nodo de acción incluye un trabajo de Hadoop. Los nodos de flujo de control proporcionan un mecanismo para controlar la ruta del flujo de trabajo. Los nodos de flujo de control incluyen nodos tales como start, end, decision, fork y join.

AWS SCT convierte sus nodos de acción de origen y los nodos de flujo de control en AWS Step Functions. En AWS Step Functions, defines tus flujos de trabajo en Amazon States Language (ASL). AWS SCT utiliza ASL para definir su máquina de estados, que es un conjunto de estados, que puede funcionar, determinar a qué estados realizar la transición a continuación, detenerse ante un error, etc. A continuación, AWS SCT carga los JSON archivos con las definiciones de las máquinas de estados. Luego, AWS SCT puede usar su rol AWS Identity and Access Management (IAM) para configurar sus máquinas de estado. AWS Step Functions Para obtener más información, consulte ¿Qué es AWS Step Functions? en la Guía para AWS Step Functions desarrolladores.

Además, AWS SCT crea un paquete de extensiones con AWS Lambda funciones que emulan las funciones de origen que AWS Step Functions no son compatibles. Para obtener más información, consulte Uso de paquetes de extensión con AWS Schema Conversion Tool.

AWS SCT migra las propiedades de su trabajo de origen a. AWS Systems Manager Para almacenar los nombres y valores de los parámetros, AWS SCT utiliza Parameter Store, una capacidad de AWS Systems Manager. Para obtener más información, consulte ¿Qué es AWS Systems Manager? en la Guía AWS Systems Manager del usuario.

Se puede utilizar AWS SCT para actualizar automáticamente los valores y los nombres de los parámetros. Debido a las diferencias de arquitectura entre Apache Oozie y Apache AWS Step Functions, es posible que tengas que configurar tus parámetros. AWS SCT puede encontrar un nombre o valor de parámetro específico en los archivos fuente y sustituirlos por valores nuevos. Para obtener más información, consulte Paso 3: Configurar los parámetros.

La siguiente imagen muestra el diagrama de arquitectura de la conversión a AWS Step Functions Apache Oozie.

El diagrama de arquitectura de la conversión de Apache Oozie a. AWS Step Functions

Para iniciar la conversión, cree y ejecute el AWS SCT CLI script. Este script incluye el conjunto completo de comandos para ejecutar la conversión. Puede descargar y editar una plantilla del script de conversión de Apache Oozie. Para obtener más información, consulte Obtener CLI escenarios.

Asegúrese de que el script incluya los pasos siguientes.

Paso 1: Conectar con los servicios de origen y destino

Para iniciar la conversión de su clúster de Apache Oozie, cree un nuevo AWS SCT proyecto. A continuación, conecte con los servicios de origen y destino. Asegúrese de crear y aprovisionar AWS los recursos de destino antes de iniciar la migración. Para obtener más información, consulte Requisitos previos para utilizar Apache Oozie como origen.

En este paso, utilizará los siguientes AWS SCT CLI comandos.

  • CreateProject— para crear un nuevo AWS SCT proyecto.

  • AddSource: para agregar los archivos de Apache Oozie de origen al proyecto de AWS SCT .

  • ConnectSource: para conectar con Apache Oozie como origen.

  • AddTarget— para añadirlo AWS Step Functions como objetivo de migración a su proyecto.

  • ConnectTarget: para conectar con AWS Step Functions.

Para ver ejemplos del uso de estos AWS SCT CLI comandos, consulteConexión a Apache Oozie.

Al ejecutar los ConnectTarget comandos ConnectSource o, AWS SCT intenta establecer la conexión con sus servicios. Si el intento de conexión falla, AWS SCT deja de ejecutar los comandos del CLI script y muestra un mensaje de error.

Paso 2: Configurar las reglas de asignación

Después de conectarse a los servicios de origen y destino, configure las reglas de asignación. Una regla de asignación define el destino de migración para los flujos de trabajo y parámetros de Apache Oozie de origen. Para obtener más información acerca de las reglas de asignación, consulte Mapeo de tipos de datos en el AWS Schema Conversion Tool.

Para definir los objetos de origen y destino para la conversión, utilice el comando AddServerMapping. Este comando utiliza dos parámetros: sourceTreePath y targetTreePath. Los valores de estos parámetros incluyen una ruta explícita a los objetos de origen y destino. Para la conversión de Apache Oozie a AWS Step Functions , estos parámetros deben empezar por ETL.

El siguiente ejemplo de código crea una regla de asignación para los objetos OOZIE y AWS_STEP_FUNCTIONS. En el paso anterior, agregó estos objetos a su AWS SCT proyecto mediante los AddTarget comandos AddSource y.

AddServerMapping -sourceTreePath: 'ETL.APACHE_OOZIE' -targetTreePath: 'ETL.AWS_STEP_FUNCTIONS' /

Para obtener más información sobre el AddServerMapping comando, consulte la AWS Schema Conversion Tool CLIReferencia.

Paso 3: Configurar los parámetros

Si los flujos de trabajo de Apache Oozie de origen utilizan parámetros, es posible que tenga que cambiar sus valores después de la conversión a AWS Step Functions. Además, es posible que necesite añadir nuevos parámetros para usarlos con su AWS Step Functions.

En este paso, utilice los comandos AddParameterMapping y AddTargetParameter.

Para reemplazar los valores de los parámetros en los archivos de origen, utilice el comando AddParameterMapping. AWS SCT analiza los archivos de origen, busca los parámetros por nombre o valor y cambia los valores. Puede ejecutar un solo comando para analizar todos los archivos de origen. Para definir el alcance de los archivos que se van a analizar, utilice uno de los tres primeros parámetros de la siguiente lista. Este comando utiliza hasta seis parámetros.

  • filterName: el nombre del filtro de los objetos de origen. Puede crear un filtro mediante el comando CreateFilter.

  • treePath: la ruta explícita a los objetos de origen.

  • namePath: la ruta explícita a un objeto de origen concreto.

  • sourceParameterName: el nombre del parámetro de origen.

  • sourceValue: el valor del parámetro de origen.

  • targetValue: el valor del parámetro de destino.

El siguiente ejemplo de código reemplaza todos los parámetros en los que el valor es igual a c:\oozie\hive.py por el valor s3://bucket-oozie/hive.py.

AddParameterMapping -treePath: 'ETL.OOZIE.Applications' -sourceValue: 'c:\oozie\hive.py' -targetValue: 's3://bucket-oozie/hive.py' /

El siguiente ejemplo de código reemplaza todos los parámetros en los que el nombre es igual a nameNode por el valor hdfs://ip-111-222-33-44.eu-west-1.compute.internal:8020.

AddParameterMapping -treePath: 'ETL.OOZIE_SOURCE.Applications' -sourceParameter: 'nameNode' -targetValue: 'hdfs://ip-111-222-33-44.eu-west-1.compute.internal:8020' /

El siguiente ejemplo de código reemplaza todos los parámetros en los que el nombre es igual a nameNode y el valor es igual a hdfs://ip-55.eu-west-1.compute.internal:8020 por el valor del parámetro targetValue.

AddParameterMapping -treePath: 'ETL.OOZIE_SOURCE.Applications' -sourceParameter: 'nameNode' -sourceValue: 'hdfs://ip-55-66-77-88.eu-west-1.compute.internal:8020' -targetValue: 'hdfs://ip-111-222-33-44.eu-west-1.compute.internal:8020' /

Para agregar un parámetro nuevo a los archivos de destino además de un parámetro existente en los archivos de origen, utilice el comando AddTargetParameter. Este comando usa el mismo conjunto de parámetros que el comando AddParameterMapping.

El siguiente ejemplo de código agrega el parámetro de destino clusterId en lugar del parámetro nameNode.

AddTargetParameter -treePath: 'ETL.OOZIE_SOURCE.Applications' -sourceParameter: 'nameNode' -sourceValue: 'hdfs://ip-55-66-77-88.eu-west-1.compute.internal:8020' -targetParameter: 'clusterId' -targetValue: '1234567890abcdef0' /

Para obtener más información sobre los CreateFilter comandos AddServerMapping AddParameterMappingAddTargetParameter,, y, consulte la AWS Schema Conversion Tool CLIReferencia.

Paso 4: Crear un informe de evaluación

Antes de iniciar la conversión, le recomendamos que cree un informe de evaluación. Este informe resume todas las tareas de migración y detalla las acciones que surgirán durante la migración. Para asegurarse de que la migración no falle, consulte este informe y aborde las medidas que se deben tomar antes de la migración. Para obtener más información, consulte Informes de evaluación.

En este paso, utilice el comando CreateReport. Este comando emplea dos parámetros. El primer parámetro describe los objetos de origen para los que se AWS SCT crea un informe de evaluación. Para ello, utilice uno de los siguientes parámetros: filterName, treePath o namePath. Este parámetro es obligatorio. También puede agregar un parámetro booleano opcional forceLoad. Si establece este parámetro entrue, carga AWS SCT automáticamente todos los objetos secundarios para el objeto de origen que especifique en el CreateReport comando.

El siguiente ejemplo de código crea un informe de evaluación para el nodo Applications de los archivos Oozie de origen.

CreateReport -treePath: 'ETL.APACHE_OOZIE.Applications' /

A continuación, puede guardar una copia del informe de evaluación como un archivo con valores (CSV) PDF o separados por comas. Para ello, utilice el comando SaveReportPDF o SaveReportCSV.

El SaveReportPDF comando guarda una copia del informe de evaluación como un PDF archivo. Este comando utiliza cuatro parámetros. El parámetro file es obligatorio, mientras que otros parámetros son opcionales.

  • file— la ruta al PDF archivo y su nombre.

  • filter: el nombre del filtro que creó anteriormente para definir el alcance de los objetos de origen que desee migrar.

  • treePath: la ruta explícita a los objetos de la base de datos de origen para los que guarda una copia del informe de evaluación.

  • namePath: la ruta que incluye solo los nombres de los objetos de destino para los que guarda una copia del informe de evaluación.

El SaveReportCSV comando guarda el informe de evaluación en CSV archivos. Este comando utiliza cuatro parámetros. El parámetro directory es obligatorio, mientras que otros parámetros son opcionales.

  • directory— la ruta a la carpeta en la que se AWS SCT guardan los CSV archivos.

  • filter: el nombre del filtro que creó anteriormente para definir el alcance de los objetos de origen que desee migrar.

  • treePath: la ruta explícita a los objetos de la base de datos de origen para los que guarda una copia del informe de evaluación.

  • namePath: la ruta que incluye solo los nombres de los objetos de destino para los que guarda una copia del informe de evaluación.

El siguiente ejemplo de código guarda una copia del informe de evaluación en el archivo c:\sct\ar.pdf.

SaveReportPDF -file:'c:\sct\ar.pdf' /

El siguiente ejemplo de código guarda una copia del informe de evaluación como CSV archivos en la c:\sct carpeta.

SaveReportCSV -file:'c:\sct' /

Para obtener más información sobre los SaveReportCSV comandos SaveReportPDF yCreateReport, consulte la AWS Schema Conversion Tool CLIReferencia.

Paso 5: Convierte tus flujos de trabajo de Apache Oozie a con AWS Step FunctionsAWS SCT

Después de configurar el AWS SCT proyecto, convierta el código fuente y aplíquelo al Nube de AWS.

En este paso, utilice los comandos Convert, SaveOnS3, ConfigureStateMachine y ApplyToTarget.

El comando Migrate migra los objetos de origen al clúster de destino. Este comando utiliza cuatro parámetros. Especifique el parámetro filter o treePath. El resto de los parámetros son opcionales.

  • filter: el nombre del filtro que creó anteriormente para definir el alcance de los objetos de origen que desee migrar.

  • namePath: la ruta explícita a un objeto de origen concreto.

  • treePath: la ruta explícita a los objetos de la base de datos de origen para los que guarda una copia del informe de evaluación.

  • forceLoad— cuando se establece entrue, carga AWS SCT automáticamente los árboles de metadatos de la base de datos durante la migración. El valor predeterminado es false.

El siguiente ejemplo de código convierte los archivos de la carpeta Applications a archivos Oozie de origen.

Convert -treePath: 'ETL.APACHE_OOZIE.Applications' /

SaveOnS3 carga las definiciones de las máquinas de estado en el bucket de Amazon S3. Este comando utiliza el parámetro treePath. Para ejecutar este comando, utilice la carpeta de destino con las definiciones de las máquinas de estado como valor de este parámetro.

A continuación, se carga la State machine definitions carpeta del objeto de AWS_STEP_FUNCTIONS destino en el bucket de Amazon S3. AWS SCT utiliza el bucket de Amazon S3 que guardó en el perfil de AWS servicio en el Requisitos previos paso.

SaveOnS3 -treePath: 'ETL.AWS_STEP_FUNCTIONS.State machine definitions' /

El comando ConfigureStateMachine configura las máquinas de estado. Este comando utiliza hasta seis parámetros. Para definir el alcance de los archivos que se van a analizar, utilice uno de los tres primeros parámetros de la siguiente lista.

  • filterName: el nombre del filtro de los objetos de destino. Puede crear un filtro mediante el comando CreateFilter.

  • treePath: la ruta explícita a los objetos de destino.

  • namePath: la ruta explícita a un objeto de destino concreto.

  • iamRole— el nombre del recurso de Amazon (ARN) del IAM rol que proporciona acceso a tus máquinas de pasos. Este parámetro es obligatorio.

El siguiente ejemplo de código configura las máquinas de estado definidas AWS_STEP_FUNCTIONS mediante el role_name IAMrol.

ConfigureStateMachine -treePath: 'ETL.AWS_STEP_FUNCTIONS.State machine definitions' -role: 'arn:aws:iam::555555555555:role/role_name' /

El comando ApplyToTarget aplica el código convertido al servidor de destino. Para ejecutar este comando, utilice uno de los siguientes parámetros: filterName, treePath o namePath para definir los objetos de destino que se van a aplicar.

El siguiente ejemplo de código aplica la máquina de app_wp estados a AWS Step Functions.

ApplyToTarget -treePath: 'ETL.AWS_STEP_FUNCTIONS.State machines.app_wp' /

Utilice un paquete de extensión de AWS SCT para asegurarse de que el código convertido produce los mismos resultados que el código de origen. Se trata de un conjunto de AWS Lambda funciones que emulan las funciones de Apache Oozie que AWS Step Functions no son compatibles. Para instalar este paquete de extensión, puede usar el comando CreateLambdaExtPack.

Este comando utiliza hasta cinco parámetros. Utilice Oozie2SF para extPackId. En este caso, AWS SCT crea un paquete de extensiones para las funciones fuente de Apache Oozie.

  • extPackId: el identificador único de un conjunto de funciones de Lambda. Este parámetro es obligatorio.

  • tempDirectory— la ruta donde se AWS SCT pueden almacenar los archivos temporales. Este parámetro es obligatorio.

  • awsProfile— el nombre de tu AWS perfil.

  • lambdaExecRoles— la lista de nombres de recursos de Amazon (ARNs) de las funciones de ejecución que se van a utilizar para las funciones de Lambda.

  • createInvokeRoleFlag: el indicador booleano que indica si se debe crear un rol de ejecución para. AWS Step Functions

Para instalar y usar el paquete de extensión, proporcione los permisos necesarios. Para obtener más información, consulte Permisos para usar AWS Lambda las funciones del paquete de extensiones.

Para obtener más información sobre los CreateLambdaExtPack comandos ConvertSaveOnS3,ConfigureStateMachine,ApplyToTarget, y, consulte la AWS Schema Conversion Tool CLIReferencia.

Ejecutando el CLI script

Cuando termine de editar el AWS SCT CLI script, guárdelo como un archivo con la .scts extensión. Ahora, puede ejecutar el script desde la app carpeta de la ruta de AWS SCT instalación. Para ello, utilice el siguiente comando.

RunSCTBatch.cmd --pathtoscts "C:\script_path\oozie.scts"

En el ejemplo anterior, sustituya script_path por la ruta del archivo con el CLI script. Para obtener más información sobre la ejecución de CLI scripts en AWS SCT, consulteModo script.

Nodos de Apache Oozie que AWS SCT se pueden convertir en AWS Step Functions

Puede utilizarlos AWS SCT para convertir los nodos de acción y los nodos de flujo de control de Apache Oozie en. AWS Step Functions

Entre los nodos de acción compatibles se incluyen:

  • Acción de Hive

  • Acción de Hive2

  • Acción de Spark

  • MapReduce Acción de streaming

  • Acción de Java

  • DistCp acción

  • Acción de Pig

  • Acción de Sqoop

  • Acción de FS

  • Acción de Shell

Entre los nodos de control de flujo compatibles se incluyen:

  • Acción Start

  • Acción End

  • Acción Kill

  • Acción Decision

  • Acción Fork

  • Acción Join