Scenario: BindException - Indirizzo già in uso in Azure HDInsight
Questo articolo descrive le procedure di risoluzione dei problemi e le possibili soluzioni per i problemi che si verificano quando si interagisce con i cluster Azure HDInsight.
Problema
L'operazione di riavvio sul server di area Apache HBase non viene completata. Passare dalla directory region-server.log
alla /var/log/hbase
nei nodi di lavoro in cui l'avvio del server di area ha esito negativo, viene 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 un'attività di carico di lavoro intensa. Di seguito è riportato ciò che accade dietro le quinte quando un utente inizia l'operazione di riavvio nel server di area HBase dall'interfaccia utente di Apache Ambari:
L'agente Ambari invia una richiesta di arresto al server di area.
L'agente Ambari attende per 30 secondi l'arresto graduale del server di area.
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.
Dopo 30 secondi, l'agente Ambari invia un comando di terminazione forzata (
kill -9
) al server di area.A causa di questo arresto improvviso, anche quando il processo del server di area viene terminato, è possibile che la porta associata al non venga rilasciata e ciò alla fine causa
AddressBindException
.
Risoluzione
Ridurre il carico sui server di area HBase prima di procedere al 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 Microsoft Azure per migliorare l'esperienza del cliente. 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.