Scenario: BindException - Indirizzo già in uso in Azure HDInsight

Questo articolo descrive i passaggi per la risoluzione dei problemi e le possibili soluzioni per i problemi durante l'interazione con i cluster Azure HDInsight.

Problema

Impossibile completare l'operazione di riavvio in un server di area Apache HBase. Dalla directory nei /var/log/hbase nodi di lavoro in cui l'avvio region-server.log del server di area ha esito negativo, è possibile che venga visualizzato un messaggio di errore simile al seguente:

Caused by: java.net.BindException: Problem binding to /10.2.0.4:16020 : Address already in use
...

Caused by: java.net.BindException: Address already in use
...

Causa

Riavvio dei server di area Apache HBase durante l'attività del carico di lavoro elevato. Di seguito è riportato ciò che accade dietro le quinte quando un utente avvia l'operazione di riavvio nel server dell'area HBase dall'interfaccia utente di Apache Ambari:

  1. L'agente Ambari invia una richiesta di arresto al server di area.

  2. L'agente Ambari attende 30 secondi per l'arresto normale del server di area

  3. Se l'applicazione continua a connettersi al server di area, il server non viene arrestato immediatamente. Il timeout di 30 secondi scade prima dell'arresto.

  4. Dopo 30 secondi, l'agente Ambari invia un comando di terminazione forzata (kill -9) al server di area.

  5. A causa di questo arresto improvviso, anche se il processo del server di area viene terminato, la porta associata al processo potrebbe non essere rilasciata, che alla fine porta a AddressBindException.

Risoluzione

Ridurre il carico sui server dell'area HBase prima di avviare un riavvio. È anche opportuno scaricare prima tutte le tabelle. Per informazioni su come scaricare le tabelle, vedere HDInsight HBase: How to improve the Apache HBase cluster restart time by flushing tables (HBase in HDInsight: come migliorare i tempi di riavvio del cluster Apache HBase scaricando le tabelle).

In alternativa, provare a riavviare manualmente i server di area nei nodi di lavoro usando i comandi seguenti:

sudo su - hbase -c "/usr/hdp/current/hbase-regionserver/bin/hbase-daemon.sh stop regionserver"
sudo su - hbase -c "/usr/hdp/current/hbase-regionserver/bin/hbase-daemon.sh start regionserver"

Passaggi successivi

Se il problema riscontrato non è presente in questo elenco o se non si riesce a risolverlo, visitare uno dei canali seguenti per ottenere ulteriore assistenza:

  • Ricevere risposte dagli esperti di Azure tramite la pagina Supporto della community per Azure.

  • Connettersi con @AzureSupport : l'account ufficiale di Microsoft Azure per migliorare l'esperienza dei clienti. Mette in contatto la community di Azure con le risorse giuste: risposte, supporto ed esperti.

  • Se serve ulteriore assistenza, è possibile inviare una richiesta di supporto dal portale di Azure. Selezionare Supporto nella barra dei menu o aprire l'hub Guida e supporto. Per informazioni più dettagliate, vedere Come creare una richiesta di supporto in Azure. L'accesso al supporto per la gestione delle sottoscrizioni e la fatturazione è incluso nella sottoscrizione di Microsoft Azure e il supporto tecnico viene fornito tramite uno dei piani di supporto di Azure.