Perché il mio crawler AWS Glue fallisce a causa di un'eccezione di servizio interna?

8 minuti di lettura
0

Il mio crawler AWS Glue fallisce con l'errore "ERRORE: eccezione interna al servizio".

Risoluzione

Le eccezioni interne del servizio del crawler possono essere causate da problemi transitori. Prima di iniziare a risolvere i problemi, esegui nuovamente il crawler. Se riscontri ancora un'eccezione interna del servizio, verifica la presenza dei seguenti problemi comuni.

Problemi relativi ai dati

Se il tuo crawler AWS Glue è configurato per elaborare una grande quantità di dati, potrebbe riscontrare un'eccezione interna del servizio. Esamina le cause dei problemi relativi ai dati da correggere:

  • Se disponi di un numero elevato di file di piccole dimensioni, il crawler potrebbe fallire con un'eccezione interna del servizio. Per evitare questo problema, usa lo strumento S3DistCp per combinare file più piccoli. L'uso di S3DistCp comporta costi Amazon EMR aggiuntivi. In alternativa, puoi impostare modelli di esclusione ed eseguire la scansione dei file in modo iterativo. Infine, valuta la possibilità di attivare il campionamento per evitare la scansione di tutti i file all'interno di un prefisso.
  • Se il crawler si avvicina al valore di timeout di 24 ore, suddividi il flusso di lavoro per evitare problemi di memoria. Per ulteriori informazioni, consulta Perché il crawler AWS Glue è in funzione per molto tempo?

Nota: Il modo migliore per risolvere i problemi relativi alla scalabilità dei dati consiste nel ridurre la quantità di dati elaborati.

Struttura delle cartelle Amazon Simple Storage Service (Amazon S3) incoerente

Nel tempo, il crawler AWS Glue rileva i tuoi dati in un formato specifico. Tuttavia, le incongruenze nelle applicazioni upstream possono innescare un errore di eccezione interna del servizio.

Potrebbe esserci un'incongruenza tra la definizione di una partizione di tabella nel Catalogo dati e una struttura di partizione Hive in Amazon S3. Differenze come queste possono creare problemi per il tuo crawler. Ad esempio, il crawler potrebbe aspettarsi che gli oggetti vengano partizionati come "s3://awsdoc-example-bucket/yyyy=xxxx/mm=xxx/dd=xx/[file]". Ma supponiamo che alcuni oggetti siano partizionati come "s3://awsdoc-example-bucket/yyyy=xxxx/mm=xxx/[file]". Quando ciò accade, il crawler fallisce e viene generato l'errore di eccezione interna del servizio.

Se modifichi una posizione dei dati precedentemente sottoposta a scansione, può verificarsi un errore di eccezione interna del servizio con una scansione incrementale. Questo accade perché è soddisfatta una delle seguenti condizioni:

  • Una posizione Amazon S3 nota per essere vuota viene aggiornata con file di dati
  • Vengono rimossi file da una posizione Amazon S3 nota per essere popolata da file di dati

Se apporti modifiche alla struttura del prefisso Amazon S3, viene attivata questa eccezione.

Se ritieni che siano state apportate modifiche al tuo datastore S3, è consigliabile eliminare il crawler corrente. Dopo aver eliminato il crawler corrente, crea un nuovo crawler sullo stesso target S3 utilizzando l'opzione Esegui il crawling di tutte le cartelle.

Problemi con AWS Key Management Service (AWS KMS)

Se il tuo datastore è configurato con la crittografia AWS KMS, controlla quanto segue:

  • Verifica che il ruolo AWS Identity and Access Management (IAM) del tuo crawler disponga delle autorizzazioni necessarie per accedere alla chiave AWS KMS.
  • Verifica che la tua policy della chiave di AWS KMS preveda una corretta delega delle autorizzazioni.
  • Verifica che la chiave AWS KMS esista e che sia nello stato Disponibile. Se la chiave AWS KMS è in attesa di cancellazione, viene attivata l'eccezione interna del servizio.

Per ulteriori informazioni, consulta Lavorare con le configurazioni di sicurezza sulla console AWS Glue e Impostare la crittografia in AWS Glue.

Problemi con il Catalogo dati AWS Glue

Se il tuo Catalogo dati contiene un numero elevato di colonne o strutture annidate, la dimensione dello schema potrebbe superare il limite di 400 KB. Per risolvere le eccezioni relative al Catalogo dati, controlla quanto segue:

  • Assicurati che i nomi delle colonne non superino i 255 caratteri di lunghezza e non contengano caratteri speciali. Per ulteriori informazioni sui requisiti delle colonne, consulta Colonna.
  • Verifica la presenza di colonne con lunghezza pari a 0. Ciò può verificarsi se le colonne dei dati di origine non corrispondono al formato dei dati della tabella del Catalogo dati.
  • Nella definizione dello schema della tabella, assicurati che il valore di Tipo di ciascuna colonna non superi 131.072 byte. Se questo limite viene superato, il crawler potrebbe incorrere in un'eccezione interna del servizio. Per ulteriori informazioni, consulta Struttura delle colonne.
  • Verifica la presenza di dati non validi. Ad esempio, se il nome della colonna non è conforme allo schema delle espressioni regolari "[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\t]", il crawler non funziona.
  • Se i dati contengono colonne DECIMALI in formato (precisione, scalabilità), verifica che il valore scalabilità sia inferiore o uguale al valore precisione.
  • Il crawler potrebbe fallire e visualizzare il messaggio di errore "Impossibile creare una tabella nel catalogo" o "La dimensione del carico utile della richiesta ha superato il limite". Quando ciò accade, monitora la dimensione della definizione dello schema della tabella. Non ci sono limiti al numero di colonne che può contenere una tabella nel Catalogo dati. Tuttavia, esiste un limite di 400 KB sulla dimensione totale dello schema. Un numero elevato di colonne contribuisce a far sì che la dimensione totale dello schema superi il limite di 400 KB. Le possibili soluzioni alternative includono la suddivisione dello schema in più tabelle e la rimozione delle colonne non necessarie. Puoi anche considerare di ridurre la dimensione dei metadati riducendo i nomi delle colonne.

Problemi con Amazon S3

Problemi con Amazon DynamoDB

Problemi con JDBC

  • Se stai eseguendo la scansione di un'origine dati JDBC crittografata con AWS KMS, controlla la sottorete che stai utilizzando per la connessione. La tabella dei percorsi della sottorete deve avere un percorso verso l'endpoint AWS KMS. Questo percorso può passare attraverso un endpoint di cloud privato virtuale (VPC) supportato da AWS KMS o un gateway NAT.
  • Assicurati di utilizzare la sintassi del percorso di inclusione corretta. Per ulteriori informazioni, consulta Defining crawlers.
  • Se stai eseguendo la scansione di un datastore JDBC, conferma che la connessione SSL sia configurata correttamente. Se non utilizzi una connessione SSL, assicurati che l'opzione Richiedi connessione SSL non sia selezionata quando configuri il crawler.
  • Verifica che il nome del database nella connessione AWS Glue corrisponda al nome del database nel percorso di inclusione del crawler. Inoltre, assicurati di aver inserito correttamente il percorso di inclusione. Per ulteriori informazioni, consulta Includi ed escludi i modelli.
  • Assicurati che la sottorete che stai utilizzando si trovi in una zona di disponibilità supportata da AWS Glue.
  • Assicurati che la sottorete che stai utilizzando disponga di un numero sufficiente di indirizzi IP privati disponibili.
  • Verifica che l'origine dati JDBC sia supportata dal driver JDBC AWS Glue integrato.

Problemi con AWS KMS quando si utilizza un endpoint VPC

  • Se utilizzi AWS KMS, il crawler AWS Glue deve avere accesso ad AWS KMS. Per concedere l'accesso, seleziona l'opzione Abilita nome DNS privato quando crei l'endpoint AWS KMS. Quindi, aggiungi l'endpoint AWS KMS alla configurazione della sottorete VPC per la connessione AWS Glue. Per ulteriori informazioni, consulta Connecting to AWS KMS through a VPC endpoint.

Informazioni correlate

Lavorare con i crawler sulla console AWS Glue

Crittografia dei dati scritti da crawler, lavori ed endpoint di sviluppo

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa