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.
Inhalt
- Pipeline bleibt im Status PENDING
- Pipeline-Komponente bleibt im Status WAITING_FOR_RUNNER
- Pipeline-Komponente bleibt im Status WAITING_ON_DEPENDENCIES
- Ausführung beginnt nicht zum geplanten Zeitpunkt
- Pipeline-Komponenten werden in der falschen Reihenfolge ausgeführt
- EMR-Cluster schlägt mit Fehlermeldung fehl: The security token included in the request is invalid
- Unzureichende Berechtigungen für den Zugriff auf Ressourcen
- Statuscode: 400 Fehlercode: PipelineNotFoundException
- Pipeline-Erstellung führt zu einem Sicherheits-Token-Fehler
- Pipeline-Details werden nicht in der Konsole angezeigt
- Error in remote runner Status Code: 404, AWS Service: Amazon S3
- Access Denied - Not Authorized to Perform Function datapipeline:
- Ältere Amazon EMR-AMIs erzeugen möglicherweise falsche Daten für große CSV-Dateien
- Erhöhen der AWS Data Pipeline-Limits
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