Поделиться через


Сценарий: BindException — адрес уже используется в Azure HDInsight

В этой статье описаны действия по устранению неполадок и возможные способы решения проблем при взаимодействии с кластерами Azure HDInsight.

Проблема

Не удается завершить операцию перезапуска на региональном сервере Apache HBase. В журнале region-server.log в каталоге /var/log/hbase на рабочих узлах, на которых не удается запустить региональный сервер, может отображаться сообщение об ошибке наподобие следующего:

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

Причина

Перезапуск региональных серверов Apache HBase в период высокой рабочей нагрузки. Ниже объясняется, что происходит, если пользователь инициирует операцию перезапуска регионального сервера HBase с помощью интерфейса Apache Ambari.

  1. Агент Ambari отправляет запрос на завершение работы к региональному серверу.

  2. Агент Ambari ожидает 30 секунд, пока региональный сервер завершит работу надлежащим образом.

  3. Если приложение продолжает подключаться к региональному серверу, его работа не будет завершена немедленно. Перед завершением работы должно истечь 30-секундное время ожидания.

  4. Через 30 секунд агент Ambari отправляет команду force-kill (kill -9) на региональный сервер.

  5. Из-за аварийного завершения работы порт, связанный с процессом, может не освободиться несмотря на завершение процесса на региональном сервере, что в конечном итоге приводит к возникновению AddressBindException.

Разрешение

Попробуйте уменьшить нагрузку на региональные серверы HBase перед выполнением перезапуска. Кроме того рекомендуется сначала очистить все таблицы. Подробные сведения об очистке таблиц см. в статье HDInsight HBase: How to improve the Apache HBase cluster restart time by flushing tables (HDInsight HBase: как уменьшить время перезапуска кластера Apache HBase с помощью очистки таблиц).

Также можно попробовать выполнить перезапуск региональных серверов на рабочих узлах вручную с помощью следующих команд:

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"

Следующие шаги

Если вы не видите своего варианта проблемы или вам не удается ее устранить, дополнительные сведения можно получить, посетив один из следующих каналов.

  • Получите ответы специалистов Azure на сайте поддержки сообщества пользователей Azure.

  • Подпишитесь на @AzureSupport — официальный канал Microsoft Azure для улучшения качества взаимодействия с клиентами. Вступайте в сообщество Azure для получения нужных ресурсов: ответов, поддержки и советов экспертов.

  • Если вам нужна дополнительная помощь, отправьте запрос в службу поддержки на портале Azure. Выберите Поддержка в строке меню или откройте центр Справка и поддержка. Дополнительные сведения см. в статье Создание запроса на поддержку Azure. Доступ к управлению подписками и поддержкой выставления счетов уже включен в вашу подписку Microsoft Azure, а техническая поддержка предоставляется в рамках одного из планов Службы поддержки Azure.