다음을 통해 공유


시나리오: BindException - Azure HDInsight에서 이미 사용 중인 주소

이 문서에서는 Azure HDInsight 클러스터와 상호 작용할 때 문제에 대한 문제 해결 단계 및 가능한 해결 방법을 설명합니다.

문제

Apache HBase Region Server에서 다시 시작 작업을 완료하지 못했습니다. 지역 서버 시작에 실패한 작업자 노드의 /var/log/hbase 디렉터리에 있는 region-server.log에서 다음과 유사한 오류 메시지가 표시될 수 있습니다.

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 Region Server를 다시 시작합니다. 다음은 사용자가 Apache Ambari UI에서 HBase 지역 서버의 다시 시작 작업을 시작할 때 백그라운드에서 수행되는 작업입니다.

  1. Ambari 에이전트가 영역 서버에 중지 요청을 보냅니다.

  2. Ambari 에이전트에서 영역 서버가 정상적으로 종료될 때까지 30초간 대기합니다.

  3. 애플리케이션이 영역 서버에 계속 연결될 경우 서버는 즉시 종료되지 않습니다. 종료되기 전에 30초 제한 시간에 만료됩니다.

  4. 30초 후 Ambari 에이전트는 영역 서버에 강제 종료(kill -9) 명령을 전송합니다.

  5. 이와 같이 갑작스럽게 종료되어 지역 서버 프로세스가 종료되더라도 프로세스와 연결된 포트가 해제되지 않을 수 있으며, 결국 AddressBindException으로 이어집니다.

해결

HBase 지역 서버의 부하를 줄인 후 다시 시작합니다. 또한 먼저 모든 테이블을 플러시하는 것이 좋습니다. 테이블을 플러시하는 방법에 대한 참조는 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 전문가로부터 답변을 얻습니다.

  • 사용자 환경을 개선하기 위한 공식 Microsoft Azure 계정인 @AzureSupport와 연결합니다. Azure 커뮤니티를 적절한 리소스(답변, 지원 및 전문가)에 연결합니다.

  • 도움이 더 필요한 경우 Azure Portal에서 지원 요청을 제출할 수 있습니다. 메뉴 모음에서 지원을 선택하거나 도움말 + 지원 허브를 엽니다. 자세한 내용은 Azure 지원 요청을 만드는 방법을 참조하세요. 구독 관리 및 청구 지원에 대한 액세스 권한은 Microsoft Azure 구독에 포함되어 있으며, Azure 지원 플랜 중 하나를 통해 기술 지원이 제공됩니다.