Partilhar via


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:

  1. O agente Ambari envia uma solicitação de parada para o servidor da região.

  2. O agente Ambari aguarda por 30 segundos para que o servidor da região desligue normalmente

  3. 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.

  4. Após 30 segundos, o agente Ambari envia um comando force-kill (kill -9) para o servidor da região.

  5. 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.