Comprendere e risolvere gli errori ricevuti da WebHCat in HDInsight

Informazioni sugli errori che si ricevono durante l'utilizzo di WebHCat con HDInsight e su come risolverli. WebHCat viene usato internamente dagli strumenti sul lato client, ad esempio Azure PowerShell e Strumenti Data Lake per Visual Studio.

Che cos'è WebHCat

WebHCat è un'API REST per HCatalog, un livello di gestione tabelle e risorse di archiviazione per Hadoop. WebHCat è abilitato per impostazione predefinita nei cluster HDInsight e viene usato da vari strumenti per inviare processi, recuperare lo stato dei processi e così via, senza effettuare l'accesso al cluster.

Modifica della configurazione

Importante

Alcuni degli errori elencati in questo documento si verificano perché è stato superato un valore massimo configurato. La procedura di risoluzione indica che è possibile modificare un valore, per eseguire la modifica è necessario usare uno dei seguenti passaggi:

  • Per cluster Windows : usare un'azione di script per configurare il valore durante la creazione del cluster. Per altre informazioni, vedere Sviluppare azioni di script.

  • Per cluster Linux : usare Ambari (web o API REST) per modificare il valore. Per altre informazioni, vedere Gestire HDInsight tramite Ambari

Importante

Linux è l'unico sistema operativo usato in HDInsight versione 3.4 o successiva. Per altre informazioni, vedere la sezione relativa al ritiro di HDInsight in Windows.

Configurazione predefinita

Il superamento dei valori predefiniti seguenti può determinare una riduzione delle prestazioni di WebHCat o la generazione di errori:

Impostazione Risultato Valore predefinito
yarn.scheduler.capacity.maximum-applications Il numero massimo di processi che possono essere attivi contemporaneamente (in sospeso o in esecuzione) 10.000
templeton.exec.max-procs Il numero massimo di richieste che possono essere gestite contemporaneamente 20
mapreduce.jobhistory.max-age-ms Il numero di giorni durante i quali verrà mantenuta la cronologia del processo 7 giorni

Numero eccessivo di richieste

Codice di stato HTTP: 429

Causa Risoluzione
È stato superato il numero massimo di richieste contemporanee gestite da WebHCat al minuto (il valore predefinito è 20) Ridurre il carico di lavoro per garantire che non venga inviato più del numero massimo di richieste contemporanee o aumentare il limite di richieste contemporanee modificando templeton.exec.max-procs. Per altre informazioni, vedere Modifica della configurazione

Server non disponibile

Codice di stato HTTP: 503

Causa Risoluzione
Questo codice di stato si verifica in genere durante il failover tra il nodo head primario e secondario per il cluster Attendere due minuti, quindi ripetere l'operazione

Contenuto richiesta non valido: impossibile trovare il processo

Codice di stato HTTP: 400

Causa Risoluzione
I dettagli dei processi sono stati rimossi dalla pulitura della cronologia dei processi Il periodo di conservazione predefinito per la cronologia dei processi è 7 giorni. Il periodo di conservazione predefinito può essere cambiato modificando mapreduce.jobhistory.max-age-ms. Per altre informazioni, vedere Modifica della configurazione
Il processo è stato terminato a causa di un failover Ripetere l'invio del processo per due minuti
È stato utilizzato un ID processo non valido Controllare se l'ID processo è corretto

Gateway non valido

Codice di stato HTTP: 502

Causa Risoluzione
Operazione interna di Garbage Collection nel processo WebHCat Attendere che l’operazione di Garbage Collection venga completata o riavviare il servizio WebHCat
Timeout in attesa di una risposta dal servizio Resource Manager. Questo errore può verificarsi quando il numero di applicazioni attive supera il numero massimo configurato (il valore predefinito è 10.000) Attendere che i processi attualmente in esecuzione vengano completati o aumentare il limite di processi simultanei modificando yarn.scheduler.capacity.maximum-applications. Per altre informazioni, vedere la sezione Modifica della configurazione.
Quando si tenta di recuperare tutti i processi tramite la chiamata GET /jobs mentre Fieldsè impostato su * Non recuperare i dettagli di tutti i processi. Usare invece jobid per recuperare i dettagli solo dei processi successivi a un determinato ID processo. Oppure, non utilizzare Fields
Il servizio WebHCat è inattivo durante il failover del nodo head Attendere due minuti e ripetere l'operazione
Sono presenti più di 500 processi in sospeso inviati tramite WebHCat Attendere il completamento dei processi attualmente in sospeso prima di inviare altri processi