Cenário: BindException – endereço já em uso no Azure HDInsight
Este artigo descreve as etapas de solução de problemas e possíveis soluções para problemas durante a interação com clusters do Azure HDInsight.
Problema
A operação de reinicialização no servidor de região do Apache HBase falha na conclusão. No diretório region-server.log
no /var/log/hbase
nos nós de trabalho em que o início do servidor de região falha, você pode ver uma mensagem de erro semelhante à seguinte:
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
Reiniciar servidores de região do Apache HBase durante uma atividade de carga de trabalho pesada. Veja abaixo o que acontece nos bastidores quando um usuário inicia a operação de reinicialização no servidor de região do HBase da interface do usuário do Apache Ambari:
O agente Ambari envia uma solicitação de parada para o servidor de região.
O agente do Ambari aguarda 30 segundos para o servidor de região desligar normalmente.
Se o seu aplicativo continuar a se conectar com o servidor de região, o servidor não desligará imediatamente. O tempo limite de 30 segundos expira antes do desligamento.
Após 30 segundos, o agente do Ambari envia um comando (
kill -9
) de encerramento forçado ao servidor de região.Devido a este desligamento inesperado, embora o processo do servidor da região seja eliminado, a porta associada ao processo pode não ser liberada, o que eventualmente leva a
AddressBindException
.
Resolução
Reduza a carga nos servidores da região HBase antes de iniciar uma reinicialização. Além disso, convém primeiro liberar todas as tabelas. Para obter uma referência sobre como liberar tabelas, confira HDInsight HBase: como melhorar o tempo de reinicialização do cluster Apache HBase liberando tabelas.
Como alternativa, tente reiniciar manualmente os servidores da região nos nós de trabalho usando os seguintes comandos:
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"
Próximas etapas
Se você não encontrou seu problema ou não conseguiu resolver seu problema, visite um dos seguintes canais para obter mais suporte:
Obtenha respostas de especialistas do Azure por meio do Suporte da Comunidade do Azure.
Conecte-se com @AzureSupport – a conta oficial do Microsoft Azure para aprimorar a experiência do cliente. Como se conectar à comunidade do Azure para os recursos certos: respostas, suporte e especialistas.
Se precisar de mais ajuda, poderá enviar uma solicitação de suporte do portal do Azure. Selecione Suporte na barra de menus ou abra o hub Ajuda + suporte. Para obter informações mais detalhadas, consulte Como criar uma solicitação de Suporte do Azure. O acesso ao Gerenciamento de assinaturas e ao suporte de cobrança está incluído na sua assinatura do Microsoft Azure, e o suporte técnico é fornecido por meio de um dos Planos de suporte do Azure.