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.logno /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:

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

  2. O agente do Ambari aguarda 30 segundos para o servidor de região desligar normalmente.

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

  4. Após 30 segundos, o agente do Ambari envia um comando (kill -9) de encerramento forçado ao servidor de região.

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