Beheben typischer Probleme - AWS Data Pipeline

AWS Data Pipeline ist für Neukunden nicht mehr verfügbar. Bestehende Kunden von AWS Data Pipeline können den Service weiterhin wie gewohnt nutzen. Weitere Informationen

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.

Beheben typischer Probleme

In diesem Thema werden die Symptome verschiedener AWS Data Pipeline-Probleme und die empfohlenen Schritte zu deren Behebung beschrieben.

Pipeline bleibt im Status PENDING

Wenn eine Pipeline dauerhaft im Status PENDING bleibt, weist dies darauf hin, dass sie noch nicht aktiviert wurde oder die Aktivierung aufgrund eines Fehlers in der Pipeline-Definition fehlgeschlagen ist. Vergewissern Sie sich, dass beim Übertragen der Pipeline über die AWS Data Pipeline-CLI oder beim Versuch, die Pipeline in der AWS Data Pipeline-Konsole zu speichern oder zu aktivieren, keine Fehler aufgetreten sind. Überprüfen Sie außerdem, ob die Definition der Pipeline gültig ist.

So zeigen Sie die Pipeline-Definition unter Verwendung der Befehlszeile an:

aws datapipeline --get-pipeline-definition --pipeline-id df-EXAMPLE_PIPELINE_ID

Überzeugen Sie sich, dass die Definition vollständig ist und keine Syntaxfehler enthält. Achten Sie insbesondere darauf, dass keine schließenden Klammern, erforderlichen Kommas oder Verweise fehlen. Wir empfehlen, einen Texteditor zu verwenden, der die Syntax von JSON-Dateien visuell darstellen und validieren kann.

Pipeline-Komponente bleibt im Status WAITING_FOR_RUNNER

Wenn sich die Pipeline im Status SCHEDULED befindet und einzelne oder mehrere Aufgaben dauerhaft im Status WAITING_FOR_RUNNER bleiben, stellen Sie sicher, dass das Feld "runsOn" oder "workerGroup" dieser Aufgaben einen gültigen Wert enthält. Falls beide Werte leer sind oder fehlen, kann die betreffende Aufgabe nicht gestartet werden, da es keine Zuordnung zwischen ihr und dem Worker zur Durchführung der Aufgaben gibt. In diese Situation haben Sie zwar durchzuführende Aufgaben definiert, aber nicht festgelegt, auf welchem Computer dies geschehen soll. Stellen Sie gegebenenfalls sicher, dass der der Pipeline-Komponente zugewiesene WorkerGroup-Wert genau den gleichen Namen und die gleiche Groß- und Kleinschreibung hat wie der WorkerGroup-Wert, den Sie für Task Runner konfiguriert haben.

Anmerkung

Wenn Sie einen runsOn-Wert angeben und workerGroup vorhanden ist, wird workerGroup ignoriert.

Eine weitere mögliche Ursache für dieses Problem besteht darin, dass der Endpunkt und der Zugriffsschlüssel, die Task Runner zur Verfügung gestellt werden, nicht mit der AWS Data Pipeline Konsole oder dem Computer identisch sind, auf dem die AWS Data Pipeline CLI-Tools installiert sind. Möglicherweise haben Sie neue Pipelines ohne sichtbare Fehler erstellt, aber Task Runner fragt aufgrund der unterschiedlichen Anmeldeinformationen den falschen Standort ab oder fragt den richtigen Standort mit unzureichenden Berechtigungen ab, um die in der Pipeline-Definition angegebene Arbeit zu identifizieren und auszuführen.

Pipeline-Komponente bleibt im Status WAITING_ON_DEPENDENCIES

Wenn sich die Pipeline im Status SCHEDULED befindet und einzelne oder mehrere Aufgaben dauerhaft im Status WAITING_ON_DEPENDENCIES bleiben, vergewissern Sie sich, dass die Vorbedingungen erfüllt sind. Wenn die Vorbedingungen des ersten Objekts in der Logikkette nicht erfüllt sind, kann keines der Objekte, die vom ersten Objekt abhängig sind, den Status WAITING_ON_DEPENDENCIES verlassen.

Sehen Sie sich als Beispiel den folgenden Auszug aus einer Pipeline-Definition an. In diesem Fall hat das InputData Objekt die Vorbedingung „Bereit“, die angibt, dass die Daten vorhanden sein müssen, bevor das InputData Objekt vollständig ist. Wenn die Daten nicht existieren, verbleibt das InputData Objekt im WAITING_ON_DEPENDENCIES Status und wartet darauf, dass die im Pfadfeld angegebenen Daten verfügbar sind. Alle Objekte, die davon abhängen, bleiben InputData ebenfalls in einem WAITING_ON_DEPENDENCIES Zustand und warten darauf, dass das InputData Objekt den FINISHED Zustand erreicht.

{ "id": "InputData", "type": "S3DataNode", "filePath": "s3://elasticmapreduce/samples/wordcount/wordSplitter.py", "schedule":{"ref":"MySchedule"}, "precondition": "Ready" }, { "id": "Ready", "type": "Exists" ...

Überprüfen Sie außerdem, ob die Objekte über die Berechtigungen zum Zugriff auf die Daten verfügen. Wenn im vorherigen Beispiel die Informationen im Feld Anmeldeinformationen nicht über Berechtigungen für den Zugriff auf die im Pfadfeld angegebenen Daten verfügten, würde das InputData Objekt in einem WAITING_ON_DEPENDENCIES Zustand stecken bleiben, weil es nicht auf die im Pfadfeld angegebenen Daten zugreifen kann, selbst wenn diese Daten existieren.

Es ist auch möglich, dass einer Ressource, die mit Amazon S3 kommuniziert, keine öffentliche IP-Adresse zugeordnet ist. So muss beispielsweise eine Ec2Resource in einem öffentlichen Subnetz über eine öffentliche IP-Adresse verfügen.

Und schließlich können Ressourceninstanzen unter bestimmten Bedingungen den Status WAITING_ON_DEPENDENCIES viel früher erreichen als ihre zugeordneten Aktivitäten, die zur Ausführung geplant sind. Dies kann den Eindruck erwecken, dass die Ressource oder Aktivität fehlschlägt.

Ausführung beginnt nicht zum geplanten Zeitpunkt

Vergewissern Sie sich, dass Sie den richtigen Zeitplantyp ausgewählt haben, der festlegt, ob die Aufgabe am Anfang des Zeitplanintervalls (Cron-Zeitplantyp) oder an dessen Ende (Zeitreihen-Zeitplantyp) ausgeführt wird.

Überprüfen Sie außerdem, ob Sie die Daten in Ihren Zeitplanobjekten korrekt angegeben haben startDateTime und ob die endDateTime Werte und im UTC-Format vorliegen, wie im folgenden Beispiel:

{ "id": "MySchedule", "startDateTime": "2012-11-12T19:30:00", "endDateTime":"2012-11-12T20:30:00", "period": "1 Hour", "type": "Schedule" },

Pipeline-Komponenten werden in der falschen Reihenfolge ausgeführt

Möglicherweise stellen Sie fest, dass die Pipeline-Komponenten nicht in der durch die Start- und Endzeiten festgelegten Reihenfolge oder nicht in der erwarteten Abfolge ausgeführt werden. Sie müssen wissen, dass Pipeline-Komponenten gleichzeitig gestartet werden können, wenn ihre Vorbedingungen zum Ausführungszeitpunkt erfüllt sind. Anders ausgedrückt: Die Pipeline-Komponenten werden nicht standardmäßig der Reihe nach ausgeführt. Wenn Sie eine bestimmte Ausführungsreihenfolge verwenden möchten, müssen Sie diese mithilfe von Vorbedingungen und dependsOn-Feldern festlegen.

Stellen Sie außerdem sicher, dass das dependsOn-Feld einen Verweis auf die richtigen Vorbedingungs-Pipeline-Komponenten enthält und dass alle erforderlichen Zeiger zwischen den Komponenten vorhanden sind, um die gewünschte Reihenfolge zu erreichen.

EMR-Cluster schlägt mit Fehlermeldung fehl: The security token included in the request is invalid

Überprüfen Sie Ihre IAM-Rollen, Richtlinien und Vertrauensbeziehungen wie unter beschriebenIAM-Rollen für AWS Data Pipeline.

Unzureichende Berechtigungen für den Zugriff auf Ressourcen

Berechtigungen, die Sie für IAM-Rollen festlegen, bestimmen, ob Sie auf Ihre EMR-Cluster und EC2-Instances zugreifen AWS Data Pipeline können, um Ihre Pipelines auszuführen. Darüber hinaus bietet IAM das Konzept von Vertrauensbeziehungen, das die Schaffung von Ressourcen in Ihrem Namen ermöglicht. Wenn Sie beispielsweise eine Pipeline erstellen, in der eine EC2-Instance für die Ausführung eines Befehls zum Verschieben von Daten verwendet wird, kann AWS Data Pipeline diese EC2-Instance für Sie bereitstellen. Wenn Sie auf Probleme stoßen, insbesondere solche, die Ressourcen betreffen, auf die Sie manuell zugreifen können, auf die Sie jedoch AWS Data Pipeline nicht zugreifen können, überprüfen Sie Ihre IAM-Rollen, Richtlinien und Vertrauensbeziehungen, wie unter beschriebenIAM-Rollen für AWS Data Pipeline.

Statuscode: 400 Fehlercode: PipelineNotFoundException

Dieser Fehler bedeutet, dass Ihre IAM-Standardrollen möglicherweise nicht über die erforderlichen Berechtigungen verfügen, um ordnungsgemäß AWS Data Pipeline zu funktionieren. Weitere Informationen finden Sie unter IAM-Rollen für AWS Data Pipeline.

Pipeline-Erstellung führt zu einem Sicherheits-Token-Fehler

Wenn Sie versuchen, eine Pipeline zu erstellen, wird die folgende Fehlermeldung angezeigt:

Failed to create pipeline with 'pipeline_name'. Fehler: UnrecognizedClientException - Das in der Anfrage enthaltene Sicherheitstoken ist ungültig.

Pipeline-Details werden nicht in der Konsole angezeigt

Der Pipeline-Filter in der AWS Data Pipeline-Konsole wird auf das geplante Startdatum einer Pipeline angewendet, unabhängig davon, wann die Pipeline übermittelt wurde. Es ist möglich, eine neue Pipeline mit einem geplanten Anfangsdatum zu übermitteln, das in der Vergangenheit liegt. Diese Pipeline wird dann vom Standardfilter gefiltert und nicht angezeigt. Um die Details der Pipeline anzuzeigen, ändern Sie den Datumsfilter so, dass das geplante Startdatum der Pipeline innerhalb des Datumsbereichs des Filters liegt.

Error in remote runner Status Code: 404, AWS Service: Amazon S3

Dieser Fehler bedeutet, dass Task Runner nicht auf Ihre Dateien in Amazon S3 zugreifen konnte. Vergewissern Sie sich, dass folgende Bedingungen erfüllt sind:

  • Die Anmeldeinformationen wurden richtig festgelegt.

  • Der Amazon S3-Bucket, auf den Sie zugreifen möchten, ist vorhanden

  • Sie sind berechtigt, auf den Amazon S3-Bucket zuzugreifen

Access Denied - Not Authorized to Perform Function datapipeline:

In den Task Runner-Protokollen wird möglicherweise ein Fehler angezeigt, der dem folgenden ähnelt:

  • ERROR Status Code: 403

  • AWS-Service: DataPipeline

  • AWS-Fehlercode: AccessDenied

  • AWS-Fehlermeldung: Benutzer: arn:aws:sts: :xxxxxxxxxxxx:Federated-User/I-xxxxxxxx ist nicht autorisiert, Folgendes auszuführen: datapipeline:. PollForTask

Anmerkung

In dieser Fehlermeldung PollForTask kann es durch Namen anderer AWS Data Pipeline Berechtigungen ersetzt werden.

Diese Fehlermeldung weist darauf hin, dass die von Ihnen angegebene IAM-Rolle zusätzliche Berechtigungen benötigt, um mit AWS Data Pipeline ihr interagieren zu können. Stellen Sie sicher, dass Ihre IAM-Rollenrichtlinie die folgenden Zeilen enthält, wobei PollForTask diese durch den Namen der Berechtigung ersetzt werden, die Sie hinzufügen möchten (verwenden Sie *, um alle Berechtigungen zu gewähren). Weitere Informationen darüber, wie Sie eine neue IAM-Rolle erstellen und eine Richtlinie darauf anwenden, finden Sie unter Verwaltung von IAM-Richtlinien im Leitfaden Using IAM.

{ "Action": [ "datapipeline:PollForTask" ], "Effect": "Allow", "Resource": ["*"] }

Ältere Amazon EMR-AMIs erzeugen möglicherweise falsche Daten für große CSV-Dateien

Auf Amazon EMR AWS Data Pipeline verwendet AMIs vor 3.9 (3.8 und niedriger) eine benutzerdefinierte Version InputFormat zum Lesen und Schreiben von CSV-Dateien zur Verwendung mit MapReduce Jobs. Dies wird verwendet, wenn der Service Tabellen von und zu Amazon S3 bereitstellt. Dabei InputFormat wurde ein Problem entdeckt, bei dem das Lesen von Datensätzen aus großen CSV-Dateien dazu führen kann, dass Tabellen erstellt werden, die nicht korrekt kopiert werden. Dieses Problem wurde in späteren Amazon EMR-Versionen behoben. Bitte verwenden Sie Amazon EMR AMI 3.9 oder eine Amazon EMR-Version 4.0.0 oder höher.

Erhöhen der AWS Data Pipeline-Limits

Es kann gelegentlich vorkommen, dass bestimmte AWS Data Pipeline-Systemlimits überschritten werden. So können beispielsweise höchstens 20 Pipelines mit jeweils 50 Objekten erstellt werden. Falls Sie mehr Pipelines benötigen, können Sie mehrere Pipelines zusammenführen. Sie erhalten dann weniger Pipelines mit mehr Objekten in jeder. Weitere Informationen zu den Limits für AWS Data Pipeline finden Sie unter Limits für AWS Data Pipeline. Sollte diese Abhilfemaßnahme nicht zum Erfolg führen, können Sie mit dem folgenden Formular eine Kapazitätserhöhung anfordern: Erhöhen des Pipeline-Limits.