

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 Functions AWS Schema Conversion Tool
<a name="big-data-oozie"></a>

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

**Topics**
+ [Descripción general de la conversión](#big-data-oozie-overview)
+ [Paso 1: Conectar con los servicios de origen y destino](#big-data-oozie-connect-to-databases)
+ [Paso 2: Configurar las reglas de asignación](#big-data-oozie-mapping-rules)
+ [Paso 3: Configurar los parámetros](#big-data-oozie-configure-parameters)
+ [Paso 4: Crear un informe de evaluación](#big-data-oozie-assessment-report)
+ [Paso 5: Convierte tus flujos de trabajo de Apache Oozie a con AWS Step Functions AWS SCT](#big-data-oozie-migrate)
+ [Ejecución del script de la CLI](#big-data-oozie-run-migration)
+ [Nodos de Apache Oozie que AWS SCT se pueden convertir en AWS Step Functions](#big-data-oozie-supported-nodes)

## Descripción general de la conversión
<a name="big-data-oozie-overview"></a>

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 el ASL para definir su máquina de estados, que es una colección 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 archivos JSON con las definiciones de las máquinas de estados. Luego, AWS SCT puede usar su rol AWS Identity and Access Management (de IAM) para configurar sus máquinas de estado. AWS Step Functions Para obtener más información, consulte [¿Qué es? AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) 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](CHAP_ExtensionPack.md).

AWS SCT migra las propiedades del 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?](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) 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](#big-data-oozie-configure-parameters).

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](http://docs.aws.amazon.com/es_es/SchemaConversionTool/latest/userguide/images/aws-sct-oozie-conversion-architecture-diagram.png)


Para iniciar la conversión, cree y ejecute el script AWS SCT CLI. 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 [Obtención de escenarios de la CLI](CHAP_Reference.md#CHAP_Reference.Scenario).

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

## Paso 1: Conectar con los servicios de origen y destino
<a name="big-data-oozie-connect-to-databases"></a>

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](CHAP_Source.Oozie.md#CHAP_Source.Oozie.Prerequisites).

En este paso, se utilizan los siguientes comandos de AWS SCT CLI.
+ `CreateProject`— para crear un AWS SCT proyecto nuevo.
+ `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 comandos AWS SCT CLI, consulte[Conexión a Apache Oozie](CHAP_Source.Oozie.md).

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

## Paso 2: Configurar las reglas de asignación
<a name="big-data-oozie-mapping-rules"></a>

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 [Asignación de tipos de datos en AWS Schema Conversion Tool](CHAP_Mapping.md).

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 comando `AddServerMapping`, consulte la [Referencia de la CLI de AWS Schema Conversion Tool](https://s3.amazonaws.com/publicsctdownload/AWS+SCT+CLI+Reference.pdf).

## Paso 3: Configurar los parámetros
<a name="big-data-oozie-configure-parameters"></a>

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, puede que tengas que añadir nuevos parámetros para usarlos con tu 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 comandos `AddServerMapping`, `AddParameterMapping`, `AddTargetParameter` y `CreateFilter`, consulte la [Referencia de la CLI de AWS Schema Conversion Tool](https://s3.amazonaws.com/publicsctdownload/AWS+SCT+CLI+Reference.pdf).

## Paso 4: Crear un informe de evaluación
<a name="big-data-oozie-assessment-report"></a>

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](CHAP_AssessmentReport.md).

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 en`true`, 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'
/
```

Puede guardar una copia del informe de evaluación en formato PDF o como un archivo de valores separados por comas (CSV). Para ello, utilice el comando `SaveReportPDF` o `SaveReportCSV`.

El comando `SaveReportPDF` guarda una copia del informe de evaluación en un archivo PDF. Este comando utiliza cuatro parámetros. El parámetro `file` es obligatorio, mientras que otros parámetros son opcionales.
+ `file`: la ruta al archivo PDF 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 comando `SaveReportCSV` guarda el informe de evaluación en archivos CSV. 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 donde se AWS SCT guardan los archivos CSV.
+ `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 en archivos CSV en la carpeta `c:\sct`.

```
SaveReportCSV
	-file:'c:\sct'
/
```

Para obtener más información sobre los comandos `CreateReport`, `SaveReportPDF` y `SaveReportCSV`, consulte la [Referencia de la CLI de AWS Schema Conversion Tool](https://s3.amazonaws.com/publicsctdownload/AWS+SCT+CLI+Reference.pdf).

## Paso 5: Convierte tus flujos de trabajo de Apache Oozie a con AWS Step Functions AWS SCT
<a name="big-data-oozie-migrate"></a>

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 en`true`, 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](CHAP_Source.Oozie.md#CHAP_Source.Oozie.Prerequisites) 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 de recurso de Amazon (ARN) del rol de IAM que proporciona acceso a las máquinas de estado. Este parámetro es obligatorio.

El siguiente ejemplo de código configura las máquinas de estado definidas al `AWS_STEP_FUNCTIONS` usar la función de {{role\_name}} IAM.

```
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 extensión](CHAP_Source.Oozie.md#CHAP_Source.Oozie.TargetPrerequisites).

Para obtener más información sobre los comandos `Convert`, `SaveOnS3`, `ConfigureStateMachine`, `ApplyToTarget` y `CreateLambdaExtPack`, consulte la [Referencia de la CLI de AWS Schema Conversion Tool](https://s3.amazonaws.com/publicsctdownload/AWS+SCT+CLI+Reference.pdf).

## Ejecución del script de la CLI
<a name="big-data-oozie-run-migration"></a>

Cuando termine de editar el script AWS SCT CLI, 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, {{script\_path}} sustitúyalo por la ruta del archivo con el script CLI. Para obtener más información sobre la ejecución de scripts CLI en AWS SCT, consulte[Modo script](CHAP_Reference.md#CHAP_Reference.ScriptMode).

## Nodos de Apache Oozie que AWS SCT se pueden convertir en AWS Step Functions
<a name="big-data-oozie-supported-nodes"></a>

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