Warum schlägt mein AWS Glue-Crawler aufgrund einer internen Serviceausnahme fehl?

Lesedauer: 7 Minute
0

Mein AWS Glue-Crawler schlägt mit der Fehlermeldung „FEHLER: Interne Serviceausnahme“.

Behebung

Interne Crawler-Dienstausnahmen können durch vorübergehende Probleme verursacht werden. Führen Sie den Crawler erneut aus, bevor Sie mit der Fehlerbehebung beginnen. Wenn Sie immer noch eine interne Serviceausnahme erhalten, suchen Sie nach den folgenden häufigen Problemen.

Probleme mit Daten

Wenn Ihr AWS Glue-Crawler für die Verarbeitung einer großen Datenmenge konfiguriert ist, kann es sein, dass der Crawler mit einer internen Serviceausnahme konfrontiert ist. Überprüfen Sie die Ursachen von Datenproblemen, um sie zu beheben:

  • Wenn Sie eine große Anzahl kleiner Dateien haben, schlägt der Crawler möglicherweise mit einer internen Serviceausnahme fehl. Um dieses Problem zu vermeiden, verwenden Sie das Tool s3DistCP, um kleinere Dateien zu kombinieren. Wenn Sie S3DistCP verwenden, fallen zusätzliche Amazon EMR-Gebühren an. Sie können auch Ausschlussmuster festlegen und die Dateien iterativ durchsuchen. Schließlich sollten Sie erwägen, das Sampling zu aktivieren, um zu vermeiden, dass alle Dateien innerhalb eines Präfixes gescannt werden.
  • Wenn sich Ihr Crawler dem 24-Stunden-Timeout-Wert nähert, teilen Sie den Workflow auf, um Speicherprobleme zu vermeiden. Weitere Informationen finden Sie unter Warum läuft der AWS Glue-Crawler so lange?

Hinweis: Der beste Weg, Probleme mit der Datenskalierung zu lösen, besteht darin, die Menge der verarbeiteten Daten zu reduzieren.

Inkonsistente Amazon Simple Storage Service (Amazon S3) -Ordnerstruktur

Im Laufe der Zeit trifft Ihr AWS Glue-Crawler auf Ihre Daten in einem bestimmten Format. Inkonsistenzen in Upstream-Anwendungen können jedoch einen internen Serviceausnahmefehler auslösen.

Möglicherweise besteht eine Inkonsistenz zwischen einer Tabellenpartitionsdefinition im Datenkatalog und einer Hive-Partitionsstruktur in Amazon S3. Unterschiede wie dieser können Probleme für Ihren Crawler haben. Beispielsweise könnte der Crawler erwarten, dass Objekte als "s3://awsdoc-example-bucket/yyyy=xxxx/mm=xxx/dd=xx/[files]" partitioniert werden. Aber nehmen wir an, dass einige der Objekte stattdessen unter "s3://awsdoc-example-bucket/yyyy=xxxx/mm=xxx/[files]" fallen. In diesem Fall schlägt der Crawler fehl und der interne Dienstausnahmefehler wird ausgelöst.

Wenn Sie einen zuvor gecrawlten Datenspeicherort ändern, kann ein interner Serviceausnahmefehler mit einem inkrementellen Crawl auftreten. Dies geschieht, weil eine der folgenden Bedingungen erfüllt ist:

  • Ein Amazon S3-Standort, von dem bekannt ist, dass er leer ist, wird mit Datendateien aktualisiert
  • Dateien werden von einem Amazon S3-Speicherort entfernt, der bekanntermaßen mit Datendateien gefüllt ist

Wenn Sie Änderungen an der Amazon S3-Präfixstruktur vornehmen, wird diese Ausnahme ausgelöst.

Wenn Sie der Meinung sind, dass sich in Ihrem S3-Datenspeicher Änderungen ergeben haben, empfiehlt es sich, den aktuellen Crawler zu löschen. Nachdem Sie den aktuellen Crawler gelöscht haben, erstellen Sie mit der Option Alle Ordner durchforsten einen neuen Crawler auf demselben S3-Ziel.

Probleme mit AWS-Key-Management-Service(AWS-KMS)

Wenn Ihr Datenspeicher mit AWS KMS-Verschlüsselung konfiguriert ist, überprüfen Sie Folgendes:

  • Vergewissern Sie sich, dass die AWS Identity and Access Management (IAM) -Rolle Ihres Crawlers über die erforderlichen Berechtigungen für den Zugriff auf den AWS KMS-Schlüssel verfügt.
  • Vergewissern Sie sich, dass Ihre AWS KMS-Schlüsselrichtlinie Berechtigungen ordnungsgemäß delegiert.
  • Vergewissern Sie sich, dass der AWS KMS-Schlüssel noch vorhanden ist und sich im **Status **Verfügbar befindet. Wenn der AWS-KMS-Schlüssel noch nicht gelöscht wird, wird die interne Serviceausnahme ausgelöst.

Weitere Informationen finden Sie unter Arbeiten mit Sicherheitskonfigurationen auf der AWS Glue-Konsole und Einrichten der Verschlüsselung in AWS Glue.

Probleme mit dem AWS Glue-Datenkatalog

Wenn Ihr Datenkatalog eine große Anzahl von Spalten oder verschachtelten Strukturen enthält, kann die Schemagröße die Grenze von 400 KB überschreiten. Um Ausnahmen im Zusammenhang mit dem Datenkatalog zu beheben, überprüfen Sie Folgendes:

  • Achten Sie darauf, dass die Spaltennamen 255 Zeichen nicht überschreiten und keine Sonderzeichen enthalten. Weitere Informationen zu den Spaltenanforderungen finden Sie unter Spalte.
  • Suchen Sie nach Spalten mit einer Länge von 0. Dies kann vorkommen, wenn die Spalten in den Quelldaten nicht dem Datenformat der Datenkatalogtabelle entsprechen.
  • Stellen Sie in der Schemadefinition Ihrer Tabelle sicher, dass der Typwert jeder Ihrer Spalten 131.072 Byte nicht überschreitet. Wenn dieses Limit überschritten wird, kann es bei Ihrem Crawler zu einer internen Serviceausnahme kommen. Weitere Informationen finden Sie unter Spaltenstruktur.
  • Suchen Sie nach fehlerhaften Daten. Wenn der Spaltenname beispielsweise nicht dem regulären Ausdrucksmuster "[\ u0020-\ uD7ff\ uE000-\ uFFFd\ uD800\ udC00-\ uDbff\ udFFF\ t] „entspricht, funktioniert der Crawler nicht.
  • Wenn Ihre Daten DECIMAL-Spalten im Format (Genauigkeit, Skala) enthalten, stellen Sie sicher, dass der Skalenwert kleiner oder gleich dem Genauigkeitswert ist.
  • Ihr Crawler schlägt möglicherweise fehl und es wird die Fehlermeldung „Tabelle im Katalog kann nicht erstellt werden“ oder „Die Payloadgröße der Anfrage hat das Limit überschritten“ angezeigt. Überwachen Sie in diesem Fall die Größe der Tabellenschemadefinition. Die Anzahl der Spalten, die eine Tabelle im Datenkatalog haben kann, ist unbegrenzt. Die Gesamtgröße des Schemas ist jedoch auf 400 KB begrenzt. Eine große Anzahl von Spalten trägt dazu bei, dass die Gesamtgröße des Schemas die Grenze von 400 KB überschreitet. Mögliche Problemumgehungen umfassen das Aufteilen des Schemas in mehrere Tabellen und das Entfernen der überflüssigen Spalten. Sie können auch erwägen, die Größe der Metadaten zu verringern, indem Sie die Spaltennamen reduzieren.

Amazon S3-Probleme

  • Stellen Sie sicher, dass der Amazon S3-Pfad keine Sonderzeichen enthält.
  • Vergewissern Sie sich, dass die IAM-Rolle für den Crawler über Berechtigungen für den Zugriff auf den Amazon S3-Pfad verfügt. Weitere Informationen finden Sie unter Erstellen einer IAM-Rolle für AWS Glue.
  • Entfernen Sie nach Möglichkeit ASCII-Sonderzeichen wie ^,% und ~ aus Ihren Daten. Oder verwenden Sie benutzerdefinierte Klassifikatoren, um Ihre Daten zu klassifizieren.
  • Vergewissern Sie sich, dass die S3-Objekte die STANDARD- Speicherklasse verwenden. Informationen zum Wiederherstellen von Objekten in der STANDARD-Speicherklasse finden Sie unter Archiviertes Objekt wiederherstellen.
  • Vergewissern Sie sich, dass die Ein- und Ausschlussmuster in der Crawler-Konfiguration den S3-Bucket-Pfaden entsprechen.
  • Wenn Sie einen verschlüsselten S3-Bucket crawlen, stellen Sie sicher, dass die IAM-Rolle für den Crawler über die entsprechenden Berechtigungen für den AWS KMS-Schlüssel verfügt. Weitere Informationen finden Sie unter Arbeiten mit Sicherheitskonfigurationen auf der AWS Glue-Konsole und Einrichten der Verschlüsselung in AWS Glue.
  • Wenn Sie einen verschlüsselten S3-Bucket crawlen, stellen Sie sicher, dass sich der Bucket, der AWS KMS-Schlüssel und der AWS Glue-Job in derselben AWS-Region befinden.
  • Überprüfen Sie die Anforderungsrate für den S3-Bucket, den Sie crawlen. Wenn es hoch ist, sollten Sie erwägen, mehr Präfixe zu erstellen, um Lesevorgänge zu parallelisieren. Weitere Informationen finden Sie unter Bewährte Methoden für Entwurfsmuster: Optimierung der Amazon S3-Leistung.
  • Stellen Sie sicher, dass die Länge des S3-Ressourcenpfads weniger als 700 Zeichen beträgt.

Amazon DynamoDB-Probleme

JDBC-Probleme

  • Wenn Sie eine JDBC-Datenquelle crawlen, die mit AWS KMS verschlüsselt ist, überprüfen Sie das Subnetz, das Sie für die Verbindung verwenden. Die Routing-Tabelle des Subnetzes muss eine Route zum AWS KMS-Endpunkt enthalten. Diese Route kann über einen von AWS KMS unterstützten Virtual Private Cloud (VPC) -Endpunktoder ein NAT-Gateway erfolgen.
  • Vergewissern Sie sich, dass Sie die richtige **** Include-Pfad-Syntax verwenden. Weitere Informationen finden Sie unter Crawler definieren.
  • Wenn Sie einen JDBC-Datenspeicher crawlen, überprüfen Sie, ob die SSL-Verbindung korrekt konfiguriert ist. Wenn Sie keine SSL-Verbindung verwenden, stellen Sie sicher, dass SSL-Verbindung erforderlichnicht ausgewählt ist, wenn Sie den Crawler konfigurieren.
  • Vergewissern Sie sich, dass der Datenbankname in der AWS Glue-Verbindung mit dem Datenbanknamen im Include-Pfaddes Crawlers übereinstimmt. Stellen Sie außerdem sicher, dass Sie den Include-Pfadkorrekt eingeben. Weitere Informationen finden Sie unter Muster einschließen und ausschließen.
  • Stellen Sie sicher, dass sich das von Ihnen verwendete Subnetz in einer Availability Zone befindet, die von AWS Glue unterstützt wird.
  • Stellen Sie sicher, dass das von Ihnen verwendete Subnetz über genügend verfügbare private IP-Adressen verfügt.
  • Vergewissern Sie sich, dass die JDBC-Datenquelle vom integrierten AWS Glue- JDBC-Treiber unterstützt wird.

Probleme mit AWS KMS bei der Verwendung eines VPC-Endpunkts

  • Wenn Sie AWS KMS verwenden, muss der AWS Glue-Crawler Zugriff auf AWS KMS haben. Um Zugriff zu gewähren, wählen Sie die **Option Privaten DNS-Namen **aktivieren, wenn Sie den AWS KMS-Endpunkt erstellen. Fügen Sie dann den AWS KMS-Endpunkt zur VPC-Subnetzkonfiguration für die AWS Glue-Verbindung hinzu. Weitere Informationen finden Sie unter Herstellen einer Verbindung zu AWS KMS über einen VPC-Endpunkt.

Ähnliche Informationen

Arbeiten mit Crawlern auf der AWS Glue-Konsole

Verschlüsselung von Daten, die von Crawlern, Jobs und Entwicklungsendpunkten geschrieben wurden

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr