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 roboczych, 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 na 30 sekund, aż serwer regionu zostanie bezpiecznie zamknięty
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.Ze względu na to nagłe zamknięcie, 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 sposobu 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 problem nie został wyświetlony lub nie możesz go rozwiązać, odwiedź jeden z następujących kanałów, aby uzyskać więcej pomocy technicznej:
Uzyskaj odpowiedzi od ekspertów platformy Azure za pośrednictwem pomocy technicznej społeczności platformy Azure.
Nawiąż połączenie z @AzureSupport — oficjalnym kontem platformy Microsoft Azure, aby ulepszyć środowisko 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ą w witrynie 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 dotyczącej zarządzania subskrypcjami i rozliczeniami jest oferowany w ramach subskrypcji platformy Microsoft Azure, a pomoc techniczna jest świadczona w ramach jednego z planów pomocy technicznej platformy Azure.