Scenariusz: BindException — adres już używany w usłudze Azure HDInsight
W tym artykule opisano kroki rozwiązywania problemów i możliwe rozwiązania problemów podczas interakcji z klastrami usługi Azure HDInsight.
Problem
Nie można ukończyć operacji ponownego uruchamiania na serwerze regionu Apache HBase. region-server.log
W katalogu w /var/log/hbase
węzłach procesu roboczego, w których uruchomienie serwera regionu kończy się niepowodzeniem, może zostać wyświetlony komunikat o błędzie podobny do następującego:
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
...
Przyczyna
Ponowne uruchamianie serwerów regionów bazy danych Apache HBase podczas intensywnej aktywności obciążenia. Poniżej przedstawiono, co dzieje się w tle, gdy użytkownik inicjuje operację ponownego uruchamiania na serwerze regionu HBase z poziomu interfejsu użytkownika apache Ambari:
Agent ambari wysyła żądanie zatrzymania do serwera regionu.
Agent Ambari czeka 30 sekund na bezpieczne zamknięcie serwera regionu
Jeśli aplikacja będzie nadal łączyć się z serwerem regionu, serwer nie zostanie natychmiast zamknięty. Limit czasu 30 sekund wygasa przed zamknięciem.
Po 30 sekundach agent Ambari wysyła polecenie force-kill (
kill -9
) do serwera regionu.Z powodu tego nagłego zamknięcia, mimo że proces serwera regionu zostaje zabity, port skojarzony z procesem może nie zostać zwolniony, co ostatecznie prowadzi do .
AddressBindException
Rozwiązanie
Przed zainicjowaniem ponownego uruchomienia zmniejsz obciążenie serwerów regionów HBase. Warto również najpierw opróżnić wszystkie tabele. Aby uzyskać informacje na temat opróżniania tabel, zobacz HDInsight HBase: Jak poprawić czas ponownego uruchomienia klastra Apache HBase przez opróżnianie tabel.
Alternatywnie spróbuj ręcznie ponownie uruchomić serwery regionów w węzłach procesu roboczego przy użyciu następujących poleceń:
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"
Następne kroki
Jeśli nie widzisz problemu lub nie możesz go rozwiązać, odwiedź jeden z następujących kanałów, aby uzyskać dodatkową pomoc techniczną:
Uzyskaj odpowiedzi od ekspertów platformy Azure za pośrednictwem pomocy technicznej społeczności platformy Azure.
Połącz się z @AzureSupport — oficjalnym kontem platformy Microsoft Azure w celu poprawy jakości obsługi klienta. Łączenie społeczności platformy Azure z odpowiednimi zasobami: odpowiedziami, pomocą techniczną i ekspertami.
Jeśli potrzebujesz dodatkowej pomocy, możesz przesłać wniosek o pomoc techniczną z Azure Portal. Wybierz pozycję Pomoc techniczna na pasku menu lub otwórz centrum Pomoc i obsługa techniczna . Aby uzyskać bardziej szczegółowe informacje, zobacz How to create an pomoc techniczna platformy Azure request (Jak utworzyć żądanie pomoc techniczna platformy Azure). Dostęp do pomocy technicznej w zakresie zarządzania subskrypcjami i rozliczeń jest dołączany do subskrypcji platformy Microsoft Azure, a pomoc techniczna jest zapewniana za pośrednictwem jednego z planów pomocy technicznej platformy Azure.