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.
Themen
- Überblick über die Konvertierung
- Schritt 1: Connect zu Ihren Quell- und Zieldiensten her
- Schritt 2: Richten Sie die Zuordnungsregeln ein
- Schritt 3: Parameter konfigurieren
- Schritt 4: Erstellen eines Bewertungsberichts
- Schritt 5: Konvertieren Sie Ihre Apache Oozie-Workflows zu AWS Step FunctionsAWS SCT
- Ihr CLI Skript ausführen
- Apache Oozie-Knoten, die konvertiert AWS SCT werden können in AWS Step Functions
Ü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 start
end
,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.
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 demCreateFilter
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 AddServerMapping
AddParameterMapping
,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
SaveOnS3
ConfigureStateMachine
,, 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 istfalse
.
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 demCreateFilter
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 Convert
SaveOnS3
,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