Сценарий: 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.
Агент Ambari отправляет запрос на завершение работы к региональному серверу.
Агент Ambari ожидает 30 секунд, пока региональный сервер завершит работу надлежащим образом.
Если приложение продолжает подключаться к региональному серверу, его работа не будет завершена немедленно. Перед завершением работы должно истечь 30-секундное время ожидания.
Через 30 секунд агент Ambari отправляет команду force-kill (
kill -9
) на региональный сервер.Из-за аварийного завершения работы порт, связанный с процессом, может не освободиться несмотря на завершение процесса на региональном сервере, что в конечном итоге приводит к возникновению
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.