Cenário: BindException - Endereço já em uso no Azure HDInsight
Este artigo descreve as etapas de solução de problemas e possíveis resoluções para problemas ao interagir com clusters do Azure HDInsight.
Problema
A operação de reinicialização em um Apache HBase Region Server não é concluída. region-server.log
No diretório in /var/log/hbase
nos nós de trabalho onde 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
...
Motivo
Reiniciando servidores de região Apache HBase durante atividades de carga de trabalho pesada. Abaixo está o que acontece nos bastidores quando um usuário inicia a operação de reinicialização no servidor da região HBase a partir da interface do usuário do Apache Ambari:
O agente Ambari envia uma solicitação de parada para o servidor da região.
O agente Ambari aguarda por 30 segundos para que o servidor da região desligue normalmente
Se seu aplicativo continuar a se conectar com o servidor de região, o servidor não será desligado imediatamente. O tempo limite de 30 segundos expira antes que o desligamento ocorra.
Após 30 segundos, o agente Ambari envia um comando force-kill (
kill -9
) para o servidor da região.Devido a esse desligamento abrupto, embora o processo do servidor da região seja morto, a porta associada ao processo pode não ser liberada, o que eventualmente leva ao
AddressBindException
.
Resolução
Reduza a carga nos servidores da região do HBase antes de iniciar uma reinicialização. Além disso, é uma boa ideia primeiro lavar todas as mesas. Para obter uma referência sobre como liberar tabelas, consulte HDInsight HBase: Como melhorar o tempo de reinicialização do cluster Apache HBase liberando tabelas.
Como alternativa, tente reiniciar manualmente os servidores de 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óximos passos
Se não viu o problema ou não conseguiu resolvê-lo, visite um dos seguintes canais para obter mais suporte:
Obtenha respostas de especialistas do Azure através do Suporte da Comunidade do Azure.
Conecte-se com o @AzureSupport - a conta oficial do Microsoft Azure para melhorar a experiência do cliente. Ligar a comunidade do Azure aos recursos certos: respostas, suporte e especialistas.
Se precisar de mais ajuda, você pode 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 suporte para Gestão de Subscrições e faturação está incluído na sua subscrição do Microsoft Azure e o Suporte Técnico é disponibilizado através de um dos Planos de Suporte do Azure.