Konvertierung von Oozie-Workflows in mit AWS Step FunctionsAWS Schema Conversion Tool - AWS Schema Conversion Tool

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Konvertierung von Oozie-Workflows in mit AWS Step FunctionsAWS Schema Conversion Tool

Um Apache Oozie-Workflows zu konvertieren, stellen Sie sicher, dass Sie AWS SCT Version 1.0.671 oder höher verwenden. Machen Sie sich auch mit der Befehlszeilenschnittstelle () CLI von vertraut. AWS SCT Weitere Informationen finden Sie unter CLIReferenz für AWS Schema Conversion Tool.

Überblick über die Konvertierung

Ihr Apache Oozie-Quellcode umfasst Aktionsknoten, Kontrollflussknoten und Jobeigenschaften. Aktionsknoten definieren die Jobs, die Sie in Ihrem Apache Oozie-Workflow ausführen. Wenn Sie Apache Oozie verwenden, um Ihren Apache Hadoop-Cluster zu orchestrieren, enthält ein Aktionsknoten einen Hadoop-Job. Kontrollflussknoten bieten einen Mechanismus zur Steuerung des Workflow-Pfads. Zu den Kontrollflussknoten gehören Knoten wie startend,decision,fork, undjoin.

AWS SCT konvertiert Ihre Quell- und Kontrollflussknoten in AWS Step Functions. AWS Step Functions In definieren Sie Ihre Workflows in der Sprache der Amazon-Staaten (ASL). AWS SCT verwendet, ASL um Ihre Zustandsmaschine zu definieren. Dabei handelt es sich um eine Sammlung von Zuständen, die Arbeit verrichten, festlegen, in welche Status als Nächstes übergegangen werden soll, bei einem Fehler beenden und so weiter. AWS SCT Lädt als Nächstes die JSON Dateien mit den Definitionen von Zustandsmaschinen hoch. Anschließend AWS SCT können Sie Ihre Rolle AWS Identity and Access Management (IAM) verwenden, um Ihre Zustandsmaschinen in AWS Step Functions zu konfigurieren. Weitere Informationen finden Sie unter Was ist AWS Step Functions? im AWS Step Functions Entwicklerhandbuch.

AWS SCT Erstellt außerdem ein Erweiterungspaket mit AWS Lambda Funktionen, die die Quellfunktionen emulieren, die AWS Step Functions nicht unterstützt werden. Weitere Informationen finden Sie unter Verwenden von Erweiterungspaketen mit AWS Schema Conversion Tool.

AWS SCT migriert Ihre Quell-Jobeigenschaften zu. AWS Systems Manager Zum Speichern von Parameternamen und -werten AWS SCT verwendet Parameter Store, eine Funktion von AWS Systems Manager. Weitere Informationen finden Sie unter Was ist AWS Systems Manager? im AWS Systems Manager Benutzerhandbuch.

Sie können AWS SCT es verwenden, um die Werte und Namen Ihrer Parameter automatisch zu aktualisieren. Aufgrund der Architekturunterschiede zwischen Apache Oozie und AWS Step Functions müssen Sie möglicherweise Ihre Parameter konfigurieren. AWS SCT kann einen bestimmten Parameternamen oder -wert in Ihren Quelldateien finden und diese durch neue Werte ersetzen. Weitere Informationen finden Sie unter Schritt 3: Parameter konfigurieren.

Die folgende Abbildung zeigt das Architekturdiagramm der Apache Oozie-Konvertierung zu AWS Step Functions.

Das Architekturdiagramm der Apache Oozie-Konvertierung zu. AWS Step Functions

Um die Konvertierung zu starten, erstellen Sie Ihr AWS SCT CLI Skript und führen Sie es aus. Dieses Skript enthält den vollständigen Befehlssatz zum Ausführen der Konvertierung. Sie können eine Vorlage des Apache Oozie-Konvertierungsskripts herunterladen und bearbeiten. Weitere Informationen finden Sie unter CLISzenarien abrufen.

Stellen Sie sicher, dass Ihr Skript die folgenden Schritte enthält.

Schritt 1: Connect zu Ihren Quell- und Zieldiensten her

Um die Konvertierung Ihres Apache Oozie-Clusters zu starten, erstellen Sie ein neues AWS SCT Projekt. Stellen Sie als Nächstes eine Verbindung zu Ihren Quell- und Zieldiensten her. Stellen Sie sicher, dass Sie Ihre AWS Zielressourcen erstellen und bereitstellen, bevor Sie mit der Migration beginnen. Weitere Informationen finden Sie unter Voraussetzungen für die Verwendung von Apache Oozie als Quelle.

In diesem Schritt verwenden Sie die folgenden AWS SCT CLI Befehle.

  • CreateProject— um ein neues AWS SCT Projekt zu erstellen.

  • AddSource— um Ihre Apache Oozie-Quelldateien zu Ihrem AWS SCT Projekt hinzuzufügen.

  • ConnectSource— um eine Verbindung zu Apache Oozie als Quelle herzustellen.

  • AddTarget— um es Ihrem Projekt AWS Step Functions als Migrationsziel hinzuzufügen.

  • ConnectTarget— um eine Verbindung herzustellen AWS Step Functions.

Beispiele für die Verwendung dieser AWS SCT CLI Befehle finden Sie unterVerbindung zu Apache Oozie herstellen.

Wenn Sie die ConnectTarget Befehle ConnectSource oder ausführen, AWS SCT versucht es, die Verbindung zu Ihren Diensten herzustellen. Schlägt der Verbindungsversuch fehl, wird die Ausführung der Befehle aus Ihrem CLI Skript AWS SCT beendet und eine Fehlermeldung angezeigt.

Schritt 2: Richten Sie die Zuordnungsregeln ein

Nachdem Sie eine Verbindung zu Ihren Quell- und Zieldiensten hergestellt haben, richten Sie die Zuordnungsregeln ein. Eine Zuordnungsregel definiert das Migrationsziel für Ihre Apache Oozie-Quell-Workflows und -Parameter. Weitere Informationen zu Zuordnungsregeln finden Sie unterZuordnung von Datentypen in der AWS Schema Conversion Tool.

Verwenden Sie den AddServerMapping Befehl, um Quell- und Zielobjekte für die Konvertierung zu definieren. Dieser Befehl verwendet zwei Parameter: sourceTreePath undtargetTreePath. Die Werte dieser Parameter beinhalten einen expliziten Pfad zu Ihren Quell- und Zielobjekten. Damit Apache Oozie AWS Step Functions konvertiert werden kann, müssen diese Parameter mit ETL beginnen.

Das folgende Codebeispiel erstellt eine Zuordnungsregel für AWS_STEP_FUNCTIONS Objekte OOZIE und. Sie haben diese Objekte mit den AddTarget Befehlen AddSource und im vorherigen Schritt zu Ihrem AWS SCT Projekt hinzugefügt.

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

Weitere Informationen zu dem AddServerMapping Befehl finden Sie in der AWS Schema Conversion Tool CLIReferenz.

Schritt 3: Parameter konfigurieren

Wenn Ihre Apache Oozie-Quell-Workflows Parameter verwenden, müssen Sie deren Werte möglicherweise nach der Konvertierung in ändern. AWS Step Functions Außerdem müssen Sie möglicherweise neue Parameter hinzufügen, um sie mit Ihrem AWS Step Functions zu verwenden.

In diesem Schritt verwenden Sie die AddTargetParameter Befehle AddParameterMapping und.

Verwenden Sie den AddParameterMapping Befehl, um die Parameterwerte in Ihren Quelldateien zu ersetzen. AWS SCT scannt Ihre Quelldateien, findet die Parameter anhand ihres Namens oder Werts und ändert ihre Werte. Sie können einen einzigen Befehl ausführen, um alle Ihre Quelldateien zu scannen. Sie definieren den Umfang der zu scannenden Dateien anhand eines der ersten drei Parameter aus der folgenden Liste. Dieser Befehl verwendet bis zu sechs Parameter.

  • filterName— der Name des Filters für Ihre Quellobjekte. Sie können einen Filter mit dem CreateFilter Befehl erstellen.

  • treePath— der explizite Pfad zu Ihren Quellobjekten.

  • namePath— der explizite Pfad zu einem bestimmten Quellobjekt.

  • sourceParameterName— der Name Ihres Quellparameters.

  • sourceValue— der Wert Ihres Quellparameters.

  • targetValue— der Wert Ihres Zielparameters.

Das folgende Codebeispiel ersetzt alle Parameter, bei denen der Wert c:\oozie\hive.py dem s3://bucket-oozie/hive.py Wert entspricht.

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

Das folgende Codebeispiel ersetzt alle Parameter, bei denen der Name nameNode dem hdfs://ip-111-222-33-44.eu-west-1.compute.internal:8020 Wert entspricht.

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

Das folgende Codebeispiel ersetzt alle Parameter, bei denen der Name gleich nameNode und der Wert hdfs://ip-55.eu-west-1.compute.internal:8020 dem Wert aus dem targetValue Parameter entspricht.

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

Verwenden Sie den AddTargetParameter Befehl, um Ihren Zieldateien zusätzlich zu einem vorhandenen Parameter aus Ihren Quelldateien einen neuen Parameter hinzuzufügen. Dieser Befehl verwendet denselben Parametersatz wie der AddParameterMapping Befehl.

Im folgenden Codebeispiel clusterId wird der Zielparameter anstelle des nameNode Parameters hinzugefügt.

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

Weitere Informationen zu den CreateFilter Befehlen AddServerMappingAddParameterMapping,AddTargetParameter, und finden Sie in der AWS Schema Conversion Tool CLIReferenz.

Schritt 4: Erstellen eines Bewertungsberichts

Bevor Sie mit der Konvertierung beginnen, empfehlen wir, einen Bewertungsbericht zu erstellen. Dieser Bericht fasst alle Migrationsaufgaben zusammen und beschreibt detailliert die Aktionspunkte, die sich während der Migration ergeben werden. Um sicherzustellen, dass Ihre Migration nicht fehlschlägt, lesen Sie diesen Bericht und gehen Sie vor der Migration auf die Aktionspunkte ein. Weitere Informationen finden Sie unter Bewertungsbericht.

In diesem Schritt verwenden Sie den CreateReport Befehl. Dieser Befehl verwendet zwei Parameter. Der erste Parameter beschreibt die Quellobjekte, für die ein Bewertungsbericht AWS SCT erstellt wird. Verwenden Sie dazu einen der folgenden Parameter:filterName,treePath, odernamePath. Dieser Parameter ist verpflichtend. Sie können auch einen optionalen booleschen Parameter hinzufügen. forceLoad Wenn Sie diesen Parameter auf setzentrue, AWS SCT werden automatisch alle untergeordneten Objekte für das Quellobjekt geladen, das Sie im Befehl angeben. CreateReport

Im folgenden Codebeispiel wird ein Bewertungsbericht für den Applications Knoten Ihrer Oozie-Quelldateien erstellt.

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

Anschließend können Sie eine Kopie des Bewertungsberichts als Datei PDF oder Datei mit kommagetrennten Werten () CSV speichern. Verwenden Sie dazu den Befehl SaveReportPDF oderSaveReportCSV.

Der SaveReportPDF Befehl speichert eine Kopie Ihres Bewertungsberichts als PDF Datei. Dieser Befehl verwendet vier Parameter. Der file Parameter ist obligatorisch, andere Parameter sind optional.

  • file— der Pfad zur PDF Datei und ihr Name.

  • filter— der Name des Filters, den Sie zuvor erstellt haben, um den Umfang Ihrer zu migrierenden Quellobjekte zu definieren.

  • treePath— der explizite Pfad zu Ihren Quelldatenbankobjekten, für die Sie eine Kopie des Bewertungsberichts speichern.

  • namePath— der Pfad, der nur die Namen der Zielobjekte enthält, für die Sie eine Kopie des Bewertungsberichts speichern.

Der SaveReportCSV Befehl speichert Ihren Bewertungsbericht in CSV Dateien. Dieser Befehl verwendet vier Parameter. Der directory Parameter ist obligatorisch, andere Parameter sind optional.

  • directory— der Pfad zu dem Ordner, in dem die CSV Dateien AWS SCT gespeichert werden.

  • filter— der Name des Filters, den Sie zuvor erstellt haben, um den Umfang Ihrer zu migrierenden Quellobjekte zu definieren.

  • treePath— der explizite Pfad zu Ihren Quelldatenbankobjekten, für die Sie eine Kopie des Bewertungsberichts speichern.

  • namePath— der Pfad, der nur die Namen der Zielobjekte enthält, für die Sie eine Kopie des Bewertungsberichts speichern.

Im folgenden Codebeispiel wird eine Kopie des Bewertungsberichts in der c:\sct\ar.pdf Datei gespeichert.

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

Im folgenden Codebeispiel wird eine Kopie des Bewertungsberichts als CSV Dateien im c:\sct Ordner gespeichert.

SaveReportCSV -file:'c:\sct' /

Weitere Informationen zu den CreateReport SaveReportCSV Befehlen SaveReportPDF und finden Sie in der AWS Schema Conversion Tool CLIReferenz.

Schritt 5: Konvertieren Sie Ihre Apache Oozie-Workflows zu AWS Step FunctionsAWS SCT

Nachdem Sie Ihr AWS SCT Projekt konfiguriert haben, konvertieren Sie Ihren Quellcode und wenden Sie ihn auf den AWS Cloud an.

In diesem Schritt verwenden Sie die ApplyToTarget Befehle Convert SaveOnS3ConfigureStateMachine,, und.

Der Migrate Befehl migriert Ihre Quellobjekte in den Zielcluster. Dieser Befehl verwendet vier Parameter. Stellen Sie sicher, dass Sie den treePath Parameter filter oder angeben. Andere Parameter sind optional.

  • filter— der Name des Filters, den Sie zuvor erstellt haben, um den Bereich Ihrer zu migrierenden Quellobjekte zu definieren.

  • namePath— der explizite Pfad zu einem bestimmten Quellobjekt.

  • treePath— der explizite Pfad zu Ihren Quelldatenbankobjekten, für die Sie eine Kopie des Bewertungsberichts speichern.

  • forceLoad— Wenn diese Option auf gesetzt isttrue, AWS SCT werden Datenbank-Metadatenbäume während der Migration automatisch geladen. Der Standardwert ist false.

Das folgende Codebeispiel konvertiert Dateien aus dem Applications Ordner in Ihren Oozie-Quelldateien.

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

Der SaveOnS3 lädt die Definitionen der Zustandsmaschinen in Ihren Amazon S3 S3-Bucket hoch. Dieser Befehl verwendet den treePath Parameter. Um diesen Befehl auszuführen, verwenden Sie den Zielordner mit den Definitionen von Zustandsmaschinen als Wert für diesen Parameter.

Im Folgenden wird der State machine definitions Ordner Ihres AWS_STEP_FUNCTIONS Zielobjekts in den Amazon S3 S3-Bucket hochgeladen. AWS SCT verwendet den Amazon S3 S3-Bucket, den Sie im Voraussetzungen Schritt im AWS Serviceprofil gespeichert haben.

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

Der ConfigureStateMachine Befehl konfiguriert Zustandsmaschinen. Dieser Befehl verwendet bis zu sechs Parameter. Stellen Sie sicher, dass Sie den Zielbereich mit einem der ersten drei Parameter aus der folgenden Liste definieren.

  • filterName— der Name des Filters für Ihre Zielobjekte. Sie können einen Filter mit dem CreateFilter Befehl erstellen.

  • treePath— der explizite Pfad zu Ihren Zielobjekten.

  • namePath— der explizite Pfad zu einem bestimmten Zielobjekt.

  • iamRole— der Amazon-Ressourcenname (ARN) der IAM Rolle, die den Zugriff auf Ihre Step Machines ermöglicht. Dieser Parameter muss angegeben werden.

Das folgende Codebeispiel konfiguriert Zustandsmaschinen, die AWS_STEP_FUNCTIONS unter Verwendung von definiert sind role_name IAMRolle.

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

Der ApplyToTarget Befehl wendet Ihren konvertierten Code auf den Zielserver an. Um diesen Befehl auszuführen, verwenden Sie einen der folgenden Parameter:filterName,, odertreePath, namePath um die anzuwendenden Zielobjekte zu definieren.

Das folgende Codebeispiel wendet die app_wp Zustandsmaschine auf an AWS Step Functions.

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

Um sicherzustellen, dass Ihr konvertierter Code dieselben Ergebnisse liefert wie Ihr Quellcode, können Sie das AWS SCT Erweiterungspaket verwenden. Dies ist eine Reihe von AWS Lambda Funktionen, die Ihre Apache Oozie-Funktionen emulieren, die AWS Step Functions nicht unterstützt werden. Um dieses Erweiterungspaket zu installieren, können Sie den CreateLambdaExtPack Befehl verwenden.

Dieser Befehl verwendet bis zu fünf Parameter. Stellen Sie sicher, dass Sie Oozie2SF für verwendenextPackId. AWS SCT Erstellt in diesem Fall ein Erweiterungspaket für Apache Oozie-Quellfunktionen.

  • extPackId— der eindeutige Bezeichner für eine Reihe von Lambda-Funktionen. Dieser Parameter muss angegeben werden.

  • tempDirectory— der Pfad, in dem temporäre Dateien gespeichert werden AWS SCT können. Dieser Parameter muss angegeben werden.

  • awsProfile— der Name Ihres AWS Profils.

  • lambdaExecRoles— die Liste der Amazon-Ressourcennamen (ARNs) der Ausführungsrollen, die für Lambda-Funktionen verwendet werden sollen.

  • createInvokeRoleFlag— das boolesche Flag, das angibt, ob eine Ausführungsrolle für erstellt werden soll. AWS Step Functions

Um das Erweiterungspaket zu installieren und zu verwenden, stellen Sie sicher, dass Sie die erforderlichen Berechtigungen bereitstellen. Weitere Informationen finden Sie unter Berechtigungen für die Verwendung von AWS Lambda Funktionen im Erweiterungspaket.

Weitere Informationen zu den CreateLambdaExtPack Befehlen ConvertSaveOnS3,ConfigureStateMachine,ApplyToTarget, und finden Sie in der AWS Schema Conversion Tool CLIReferenz.

Ihr CLI Skript ausführen

Wenn Sie mit der Bearbeitung Ihres AWS SCT CLI Skripts fertig sind, speichern Sie es als Datei mit der .scts Erweiterung. Jetzt können Sie Ihr Skript im app Ordner Ihres AWS SCT Installationspfads ausführen. Führen Sie dazu den folgenden Befehl aus.

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

Ersetzen Sie im vorherigen Beispiel script_path mit dem Pfad zu Ihrer Datei mit dem CLI Skript. Weitere Hinweise zum Ausführen von CLI Skripten in AWS SCT finden Sie unterSkriptmodus.

Apache Oozie-Knoten, die konvertiert AWS SCT werden können in AWS Step Functions

Sie können AWS SCT es verwenden, um Apache Oozie-Aktionsknoten und Kontrollflussknoten in zu konvertieren. AWS Step Functions

Zu den unterstützten Aktionsknoten gehören die folgenden:

  • Hive-Aktion

  • Hive 2-Aktion

  • Aktion auslösen

  • MapReduce Streaming-Aktion

  • Java-Aktion

  • DistCp Aktion

  • Aktion Schwein

  • Sqoop-Aktion

  • FS-Aktion

  • Shell-Aktion

Zu den unterstützten Kontrollflussknoten gehören:

  • Aktion starten

  • Aktion beenden

  • Aktion beenden

  • Entscheidung, Aktion

  • Aktion Gabel

  • Mach mit bei der Aktion