

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Convertir le flux de travail Oozie en with AWS Step Functions AWS Schema Conversion Tool
<a name="big-data-oozie"></a>

Pour convertir les flux de travail Apache Oozie, assurez-vous d'utiliser la AWS SCT version 1.0.671 ou supérieure. Familiarisez-vous également avec l'interface de ligne de commande (CLI) de AWS SCT. Pour de plus amples informations, veuillez consulter [Référence CLI pour AWS Schema Conversion Tool](CHAP_Reference.md).

**Topics**
+ [Vue d'ensemble des conversions](#big-data-oozie-overview)
+ [Étape 1 : Connectez-vous à vos services source et cible](#big-data-oozie-connect-to-databases)
+ [Étape 2 : configurer les règles de mappage](#big-data-oozie-mapping-rules)
+ [Étape 3 : Configuration des paramètres](#big-data-oozie-configure-parameters)
+ [Étape 4 : Créer un rapport d’évaluation](#big-data-oozie-assessment-report)
+ [Étape 5 : Convertissez vos flux de travail Apache Oozie en AWS Step Functions AWS SCT](#big-data-oozie-migrate)
+ [Exécution de votre script CLI](#big-data-oozie-run-migration)
+ [Nœuds Apache Oozie AWS SCT pouvant être convertis en AWS Step Functions](#big-data-oozie-supported-nodes)

## Vue d'ensemble des conversions
<a name="big-data-oozie-overview"></a>

Votre code source Apache Oozie inclut des nœuds d'action, des nœuds de flux de contrôle et des propriétés de tâche. Les nœuds d'action définissent les tâches que vous exécutez dans votre flux de travail Apache Oozie. Lorsque vous utilisez Apache Oozie pour orchestrer votre cluster Apache Hadoop, un nœud d'action inclut une tâche Hadoop. Les nœuds de flux de contrôle fournissent un mécanisme permettant de contrôler le chemin du flux de travail. Les nœuds du flux de contrôle incluent des nœuds tels que `start``end`,`decision`,`fork`, et`join`.

AWS SCT convertit vos nœuds d'action source et vos nœuds de flux de contrôle en AWS Step Functions. Dans AWS Step Functions, vous définissez vos flux de travail dans l'Amazon States Language (ASL). AWS SCT utilise l'ASL pour définir votre machine à états, qui est un ensemble d'états, capable de fonctionner, de déterminer les états vers lesquels passer ensuite, de s'arrêter en cas d'erreur, etc. Ensuite, AWS SCT télécharge les fichiers JSON avec les définitions des machines à états. AWS SCT Vous pouvez ensuite utiliser votre rôle Gestion des identités et des accès AWS (IAM) pour configurer vos machines d'état dans AWS Step Functions. Pour plus d'informations, voir [Qu'est-ce que c'est AWS Step Functions ?](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) dans le *Guide AWS Step Functions du développeur*.

 AWS SCT Crée également un pack d'extension avec des AWS Lambda fonctions qui émulent les fonctions source qui AWS Step Functions ne sont pas prises en charge. Pour de plus amples informations, veuillez consulter [Utilisation de packs d'extension avec AWS Schema Conversion Tool](CHAP_ExtensionPack.md).

AWS SCT migre les propriétés de votre tâche source vers. AWS Systems Manager Pour stocker les noms et les valeurs des paramètres, AWS SCT utilise Parameter Store, une fonctionnalité de AWS Systems Manager. Pour plus d'informations, voir [Qu'est-ce que c'est AWS Systems Manager ?](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) dans le *guide de AWS Systems Manager l'utilisateur*.

Vous pouvez l'utiliser AWS SCT pour mettre à jour automatiquement les valeurs et les noms de vos paramètres. En raison des différences d'architecture entre Apache Oozie et Apache AWS Step Functions, vous devrez peut-être configurer vos paramètres. AWS SCT peut trouver le nom ou la valeur d'un paramètre spécifié dans vos fichiers source et les remplacer par de nouvelles valeurs. Pour de plus amples informations, veuillez consulter [Étape 3 : Configuration des paramètres](#big-data-oozie-configure-parameters).

L'image suivante montre le schéma d'architecture de la conversion d'Apache Oozie en. AWS Step Functions

![Le schéma d'architecture de la conversion d'Apache Oozie en. AWS Step Functions](http://docs.aws.amazon.com/fr_fr/SchemaConversionTool/latest/userguide/images/aws-sct-oozie-conversion-architecture-diagram.png)


Pour démarrer la conversion, créez et exécutez votre script AWS SCT CLI. Ce script inclut l'ensemble complet des commandes permettant d'exécuter la conversion. Vous pouvez télécharger et modifier un modèle du script de conversion Apache Oozie. Pour de plus amples informations, veuillez consulter [Obtenir des scénarios CLI](CHAP_Reference.md#CHAP_Reference.Scenario).

Assurez-vous que votre script inclut les étapes suivantes.

## Étape 1 : Connectez-vous à vos services source et cible
<a name="big-data-oozie-connect-to-databases"></a>

Pour démarrer la conversion de votre cluster Apache Oozie, créez un nouveau AWS SCT projet. Connectez-vous ensuite à vos services source et cible. Assurez-vous de créer et de provisionner vos AWS ressources cibles avant de commencer la migration. Pour de plus amples informations, veuillez consulter [Conditions préalables à l'utilisation d'Apache Oozie en tant que source](CHAP_Source.Oozie.md#CHAP_Source.Oozie.Prerequisites).

Au cours de cette étape, vous devez utiliser les commandes AWS SCT CLI suivantes.
+ `CreateProject`— pour créer un nouveau AWS SCT projet.
+ `AddSource`— pour ajouter vos fichiers source Apache Oozie dans votre AWS SCT projet.
+ `ConnectSource`— pour se connecter à Apache Oozie en tant que source.
+ `AddTarget`— à ajouter AWS Step Functions en tant que cible de migration dans votre projet.
+ `ConnectTarget`— pour se connecter à AWS Step Functions.

Pour des exemples d'utilisation de ces commandes AWS SCT CLI, consultez[Connexion à Apache Oozie](CHAP_Source.Oozie.md).

Lorsque vous exécutez les `ConnectTarget` commandes `ConnectSource` or, AWS SCT essaie d'établir la connexion à vos services. Si la tentative de connexion échoue, AWS SCT arrête d'exécuter les commandes de votre script CLI et affiche un message d'erreur.

## Étape 2 : configurer les règles de mappage
<a name="big-data-oozie-mapping-rules"></a>

Après vous être connecté à vos services source et cible, configurez les règles de mappage. Une règle de mappage définit la cible de migration pour vos flux de travail et paramètres Apache Oozie source. Pour plus d'informations sur les règles de mappage, consultez[Cartographie des types de données dans AWS Schema Conversion Tool](CHAP_Mapping.md).

Pour définir les objets source et cible à convertir, utilisez la `AddServerMapping` commande. Cette commande utilise deux paramètres : `sourceTreePath` et`targetTreePath`. Les valeurs de ces paramètres incluent un chemin explicite vers vos objets source et cible. Pour qu'Apache Oozie soit AWS Step Functions converti, ces paramètres doivent commencer par. `ETL`

L'exemple de code suivant crée une règle de mappage pour `OOZIE` et `AWS_STEP_FUNCTIONS` les objets. Vous avez ajouté ces objets à votre AWS SCT projet à l'aide `AddSource` des `AddTarget` commandes et à l'étape précédente.

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

Pour plus d'informations sur la `AddServerMapping` commande, consultez la [référence de la AWS Schema Conversion Tool CLI](https://s3.amazonaws.com/publicsctdownload/AWS+SCT+CLI+Reference.pdf).

## Étape 3 : Configuration des paramètres
<a name="big-data-oozie-configure-parameters"></a>

Si vos flux de travail Apache Oozie source utilisent des paramètres, vous devrez peut-être modifier leurs valeurs après la conversion en. AWS Step Functions Il se peut également que vous deviez ajouter de nouveaux paramètres à utiliser avec votre AWS Step Functions.

Au cours de cette étape, vous devez utiliser les `AddTargetParameter` commandes `AddParameterMapping` et.

Pour remplacer les valeurs des paramètres dans vos fichiers source, utilisez la `AddParameterMapping` commande. AWS SCT analyse vos fichiers source, trouve les paramètres par nom ou par valeur et modifie leurs valeurs. Vous pouvez exécuter une seule commande pour analyser tous vos fichiers sources. Vous définissez l'étendue des fichiers à analyser à l'aide de l'un des trois premiers paramètres de la liste suivante. Cette commande utilise jusqu'à six paramètres.
+ `filterName`— le nom du filtre pour vos objets source. Vous pouvez créer un filtre à l'aide de la `CreateFilter` commande.
+ `treePath`— le chemin explicite vers vos objets source.
+ `namePath`— le chemin explicite vers un objet source spécifique.
+ `sourceParameterName`— le nom de votre paramètre source.
+ `sourceValue`— la valeur de votre paramètre source.
+ `targetValue`— la valeur de votre paramètre cible.

L'exemple de code suivant remplace tous les paramètres dont la valeur est égale `c:\oozie\hive.py` à par la `s3://bucket-oozie/hive.py` valeur.

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

L'exemple de code suivant remplace tous les paramètres dont le nom est égal `nameNode` à par la `hdfs://ip-111-222-33-44.eu-west-1.compute.internal:8020` valeur.

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

L'exemple de code suivant remplace tous les paramètres dont le nom est égal à `nameNode` et la valeur est égale `hdfs://ip-55.eu-west-1.compute.internal:8020` à par la valeur du `targetValue` paramètre.

```
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'
/
```

Pour ajouter un nouveau paramètre dans vos fichiers cibles en plus d'un paramètre existant dans vos fichiers source, utilisez la `AddTargetParameter` commande. Cette commande utilise le même ensemble de paramètres que la `AddParameterMapping` commande.

L'exemple de code suivant ajoute le paramètre `clusterId` cible au lieu du `nameNode` paramètre.

```
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'
/
```

Pour plus d'informations sur les `CreateFilter` commandes`AddServerMapping`,, et`AddParameterMapping`,`AddTargetParameter`,,,,,, consultez la [référence de la AWS Schema Conversion Tool CLI](https://s3.amazonaws.com/publicsctdownload/AWS+SCT+CLI+Reference.pdf).

## Étape 4 : Créer un rapport d’évaluation
<a name="big-data-oozie-assessment-report"></a>

Avant de commencer la conversion, nous vous recommandons de créer un rapport d'évaluation. Ce rapport résume toutes les tâches de migration et détaille les actions qui apparaîtront au cours de la migration. Pour vous assurer que votre migration n'échoue pas, consultez ce rapport et abordez les mesures à prendre avant la migration. Pour de plus amples informations, veuillez consulter [Rapport d’évaluation](CHAP_AssessmentReport.md).

Dans cette étape, vous devez utiliser la `CreateReport` commande. Cette commande utilise deux paramètres. Le premier paramètre décrit les objets source pour lesquels un rapport d'évaluation est AWS SCT créé. Pour ce faire, utilisez l'un des paramètres suivants : `filterName``treePath`, ou`namePath`. Ce paramètre est obligatoire. Vous pouvez également ajouter un paramètre booléen facultatif. `forceLoad` Si vous définissez ce paramètre sur`true`, charge AWS SCT automatiquement tous les objets enfants pour l'objet source que vous spécifiez dans la `CreateReport` commande.

L'exemple de code suivant crée un rapport d'évaluation pour le `Applications` nœud de vos fichiers source Oozie.

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

Vous pouvez ensuite enregistrer une copie du rapport d'évaluation au format PDF ou au format CSV (valeurs séparées par des virgules). Pour ce faire, utilisez la `SaveReportCSV` commande `SaveReportPDF` or.

La `SaveReportPDF` commande enregistre une copie de votre rapport d'évaluation sous forme de fichier PDF. Cette commande utilise quatre paramètres. Le `file` paramètre est obligatoire, les autres paramètres sont facultatifs.
+ `file`— le chemin d'accès au fichier PDF et son nom.
+ `filter`: le nom du filtre que vous avez créé auparavant pour définir l'étendue des objets source à migrer.
+ `treePath`— le chemin explicite vers les objets de votre base de données source pour lesquels vous enregistrez une copie du rapport d'évaluation.
+ `namePath`: le chemin qui inclut uniquement les noms des objets cibles pour lesquels vous enregistrez une copie du rapport d'évaluation.

La `SaveReportCSV` commande enregistre votre rapport d'évaluation dans des fichiers CSV. Cette commande utilise quatre paramètres. Le `directory` paramètre est obligatoire, les autres paramètres sont facultatifs.
+ `directory`— le chemin d'accès au dossier dans lequel AWS SCT sont enregistrés les fichiers CSV.
+ `filter`: le nom du filtre que vous avez créé auparavant pour définir l'étendue des objets source à migrer.
+ `treePath`— le chemin explicite vers les objets de votre base de données source pour lesquels vous enregistrez une copie du rapport d'évaluation.
+ `namePath`: le chemin qui inclut uniquement les noms des objets cibles pour lesquels vous enregistrez une copie du rapport d'évaluation.

L'exemple de code suivant enregistre une copie du rapport d'évaluation dans le `c:\sct\ar.pdf` fichier.

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

L'exemple de code suivant enregistre une copie du rapport d'évaluation sous forme de fichiers CSV dans le `c:\sct` dossier.

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

Pour plus d'informations sur les `SaveReportCSV` commandes `SaveReportPDF` et`CreateReport`, consultez la [référence de la AWS Schema Conversion Tool CLI](https://s3.amazonaws.com/publicsctdownload/AWS+SCT+CLI+Reference.pdf).

## Étape 5 : Convertissez vos flux de travail Apache Oozie en AWS Step Functions AWS SCT
<a name="big-data-oozie-migrate"></a>

Après avoir configuré votre AWS SCT projet, convertissez votre code source et appliquez-le au AWS Cloud.

Au cours de cette étape, vous devez utiliser les `ApplyToTarget` commandes `Convert` `SaveOnS3``ConfigureStateMachine`,, et.

La `Migrate` commande fait migrer vos objets source vers le cluster cible. Cette commande utilise quatre paramètres. Assurez-vous de spécifier le `treePath` paramètre `filter` ou. Les autres paramètres sont facultatifs.
+ `filter`: le nom du filtre que vous avez créé auparavant pour définir l'étendue des objets source à migrer.
+ `namePath`— le chemin explicite vers un objet source spécifique.
+ `treePath`— le chemin explicite vers les objets de votre base de données source pour lesquels vous enregistrez une copie du rapport d'évaluation.
+ `forceLoad`— lorsqu'il est défini sur`true`, charge AWS SCT automatiquement les arborescences de métadonnées de la base de données lors de la migration. La valeur par défaut est `false`.

L'exemple de code suivant convertit les fichiers du `Applications` dossier de vos fichiers source Oozie.

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

`SaveOnS3`Télécharge ensuite les définitions des machines d'état dans votre compartiment Amazon S3. Cette commande utilise le `treePath` paramètre. Pour exécuter cette commande, utilisez le dossier cible contenant les définitions des machines d'état comme valeur de ce paramètre.

Ce qui suit télécharge le `State machine definitions` dossier de votre objet `AWS_STEP_FUNCTIONS` cible dans le compartiment Amazon S3. AWS SCT utilise le compartiment Amazon S3 que vous avez stocké dans le profil AWS de service lors de l'[Conditions préalables](CHAP_Source.Oozie.md#CHAP_Source.Oozie.Prerequisites)étape.

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

La `ConfigureStateMachine` commande configure les machines d'état. Cette commande utilise jusqu'à six paramètres. Assurez-vous de définir l'étendue cible à l'aide de l'un des trois premiers paramètres de la liste suivante.
+ `filterName`— le nom du filtre pour vos objets cibles. Vous pouvez créer un filtre à l'aide de la `CreateFilter` commande.
+ `treePath`— le chemin explicite vers vos objets cibles.
+ `namePath`— le chemin explicite vers un objet cible spécifique.
+ `iamRole`— le nom de ressource Amazon (ARN) du rôle IAM qui permet d'accéder à vos machines à étapes. Ce paramètre est obligatoire.

L'exemple de code suivant configure les machines à états définies à `AWS_STEP_FUNCTIONS` l'aide du rôle {{role\_name}} IAM.

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

La `ApplyToTarget` commande applique votre code converti au serveur cible. Pour exécuter cette commande, utilisez l'un des paramètres suivants : `filterName``treePath`, ou `namePath` pour définir les objets cibles à appliquer.

L'exemple de code suivant applique la machine à `app_wp` états à AWS Step Functions.

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

Pour vous assurer que votre code converti produit les mêmes résultats que votre code source, vous pouvez utiliser le pack d' AWS SCT extension. Il s'agit d'un ensemble de AWS Lambda fonctions qui émulent vos fonctions Apache Oozie qui AWS Step Functions ne sont pas prises en charge. Pour installer ce pack d'extension, vous pouvez utiliser la `CreateLambdaExtPack` commande.

Cette commande utilise jusqu'à cinq paramètres. Assurez-vous que vous utilisez **Oozie2SF** pour`extPackId`. Dans ce cas, AWS SCT crée un pack d'extension pour les fonctions source d'Apache Oozie.
+ `extPackId`— l'identifiant unique d'un ensemble de fonctions Lambda. Ce paramètre est obligatoire.
+ `tempDirectory`— le chemin où AWS SCT peuvent être stockés les fichiers temporaires. Ce paramètre est obligatoire.
+ `awsProfile`— le nom de votre AWS profil.
+ `lambdaExecRoles`— la liste des Amazon Resource Names (ARNs) des rôles d'exécution à utiliser pour les fonctions Lambda.
+ `createInvokeRoleFlag`— l'indicateur booléen qui indique s'il faut créer un rôle d'exécution pour. AWS Step Functions

Pour installer et utiliser le pack d'extension, assurez-vous de fournir les autorisations requises. Pour de plus amples informations, veuillez consulter [Autorisations d'utilisation AWS Lambda des fonctions du pack d'extension](CHAP_Source.Oozie.md#CHAP_Source.Oozie.TargetPrerequisites).

[Pour plus d'informations sur les `CreateLambdaExtPack` commandes,,, et`Convert`,,,`SaveOnS3`,,`ConfigureStateMachine`,,`ApplyToTarget`,,,,,,,,,,,,,,,,,,,AWS Schema Conversion Tool](https://s3.amazonaws.com/publicsctdownload/AWS+SCT+CLI+Reference.pdf)

## Exécution de votre script CLI
<a name="big-data-oozie-run-migration"></a>

Une fois que vous avez terminé de modifier votre script AWS SCT CLI, enregistrez-le sous forme de fichier avec l'`.scts`extension. Vous pouvez maintenant exécuter votre script depuis le `app` dossier correspondant à votre chemin AWS SCT d'installation. Pour cela, utilisez la commande suivante.

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

Dans l'exemple précédent, remplacez {{script\_path}} par le chemin d'accès à votre fichier par le script CLI. Pour plus d'informations sur l'exécution de scripts CLI dans AWS SCT, consultez[Mode script](CHAP_Reference.md#CHAP_Reference.ScriptMode).

## Nœuds Apache Oozie AWS SCT pouvant être convertis en AWS Step Functions
<a name="big-data-oozie-supported-nodes"></a>

Vous pouvez l'utiliser AWS SCT pour convertir les nœuds d'action Apache Oozie et les nœuds de flux de contrôle en. AWS Step Functions

Les nœuds d'action pris en charge sont les suivants :
+ Action de la ruche
+ Action Hive2
+ Action Spark
+ MapReduce Action de diffusion
+ Action Java
+ DistCp action
+ Action porcine
+ Action Sqoop
+ Action FS
+ Action de la coque

Les nœuds de flux de contrôle pris en charge sont les suivants :
+ Lancer l'action
+ Mettre fin à l'action
+ Action de destruction
+ Action décisionnelle
+ Action de la fourche
+ Rejoignez l'action