Convertir le flux de travail Oozie en with AWS Step FunctionsAWS Schema Conversion Tool - AWS Schema Conversion Tool

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 FunctionsAWS Schema Conversion Tool

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 CLIRéférence pour AWS Schema Conversion Tool.

Vue d'ensemble des conversions

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 startend,decision,fork, etjoin.

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 ASL pour définir votre machine à états, qui est un ensemble d'états, qui peut fonctionner, déterminer les états vers lesquels passer ensuite, arrêter avec une erreur, etc. Ensuite, AWS SCT télécharge les JSON fichiers avec les définitions des machines à états. AWS SCT Vous pouvez ensuite utiliser votre rôle AWS Identity and Access Management (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 ? 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.

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 ? 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.

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

Pour démarrer la conversion, créez et exécutez votre AWS SCT CLI script. 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 CLI des scénarios.

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

Étape 1 : Connectez-vous à vos services source et cible

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.

Au cours de cette étape, vous devez utiliser les AWS SCT CLI commandes 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 AWS SCT CLI commandes, consultezConnexion à Apache Oozie.

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 CLI script et affiche un message d'erreur.

Étape 2 : configurer les règles de mappage

Une fois 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, consultezCartographie des types de données dans AWS Schema Conversion Tool.

Pour définir les objets source et cible à convertir, utilisez la AddServerMapping commande. Cette commande utilise deux paramètres : sourceTreePath ettargetTreePath. 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 AWS Schema Conversion Tool CLIréférence.

Étape 3 : Configuration des paramètres

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 AddServerMappingAddParameterMapping,AddTargetParameter,, et, consultez la AWS Schema Conversion Tool CLIréférence.

Étape 4 : Créer un rapport d’évaluation

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.

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 : filterNametreePath, ounamePath. Ce paramètre est obligatoire. Vous pouvez également ajouter un paramètre booléen facultatif. forceLoad Si vous définissez ce paramètre surtrue, 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 sous forme de fichier PDF ou de fichiers de valeurs séparés par des virgules (CSV). Pour ce faire, utilisez la SaveReportCSV commande SaveReportPDF or.

La SaveReportPDF commande enregistre une copie de votre rapport d'évaluation sous forme de PDF fichier. 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 PDF fichier 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 CSV des fichiers. 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 CSV fichiers.

  • 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 CSV fichiers dans le c:\sct dossier.

SaveReportCSV -file:'c:\sct' /

Pour plus d'informations sur CreateReport les SaveReportCSV commandes SaveReportPDF et, consultez la AWS Schema Conversion Tool CLIréférence.

Étape 5 : Convertissez vos flux de travail Apache Oozie en AWS Step FunctionsAWS SCT

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

Dans cette étape, vous devez utiliser les ApplyToTarget commandes Convert SaveOnS3ConfigureStateMachine,, 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 surtrue, 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' /

SaveOnS3Té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'Prérequisé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 IAM rôle qui permet d'accéder à vos machines à pas. Ce paramètre est obligatoire.

L'exemple de code suivant configure les machines à états définies à AWS_STEP_FUNCTIONS l'aide du role_name IAMrôle.

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 : filterNametreePath, 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 pourextPackId. 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.

Pour plus d'informations sur les CreateLambdaExtPack commandes ConvertSaveOnS3,ConfigureStateMachine,ApplyToTarget, et,, et, consultez la AWS Schema Conversion Tool CLIréférence.

Exécution de votre CLI script

Une fois que vous avez terminé de modifier votre AWS SCT CLI script, enregistrez-le sous forme de fichier avec l'.sctsextension. 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 avec le chemin d'accès à votre fichier contenant le CLI script. Pour plus d'informations sur l'exécution de CLI scripts dans AWS SCT, consultezMode script.

Nœuds Apache Oozie AWS SCT pouvant être convertis en AWS Step Functions

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 fourche

  • Rejoignez l'action