Amazon EMR에서 발생한 “502 잘못된 게이트웨이” 또는 “504 게이트웨이 시간 초과” 오류로 인한 프라이머리 노드 장애 문제를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2023년 1월 6일

Amazon EMR 프라이머리 노드가 “502 잘못된 게이트웨이” 또는 “504 게이트웨이 시간 초과” 오류로 인해 실패했습니다.

간략한 설명

EMR 프라이머리 노드가 다음 오류 중 하나로 인해 실패할 수 있습니다.

The master failed: Error occurred:<html>?? <head><title>502 Bad Gateway</title></head> <body>?? <center><h1>502 Bad Gateway</h1></center> <hr><center>nginx/1.20.0</center>?? </body>?? </html>??

또는

The master failed: Error occurred: <html>??<head><title>504 Gateway Time-out</title></head>??<body>??<center><h1>504 Gateway Time-out</h1></center>??<hr><center>nginx/1.16.1</center>??</body>??</html>??

이러한 오류의 일반적인 원인은 다음과 같습니다.

  • 인스턴스 컨트롤러 데몬이 중지된 상태이거나 프라이머리 노드 인스턴스에서 다운되었습니다.
  • 프라이머리 노드의 메모리 또는 디스크 공간이 부족합니다.
  • Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 상태 검사가 실패했습니다.

해결 방법

프라이머리 노드 인스턴스 컨트롤러 데몬 장애 문제 해결

프라이머리 노드의 인스턴스 컨트롤러(I/C)는 EMR 컨트롤 플레인 및 나머지 클러스터와 통신하는 데몬입니다. 인스턴스 컨트롤러가 EMR 컨트롤 플레인과 통신할 수 없는 경우, 프라이머리 노드가 비정상으로 분류되고 클러스터가 종료됩니다.

이 문제를 해결하려면 인스턴스 컨트롤러 로그를 분석하여 프로세스가 실패한 이유를 확인하십시오. 인스턴스 컨트롤러 로그는 /emr/instance-controller/log/에 있습니다.

종료 보호가 켜져 있는 경우 SSH를 프라이머리 노드에 연결하고 인스턴스 컨트롤러 프로세스를 다시 시작합니다.

Amazon EMR 5.30.0 이상의 릴리스 버전:

1.    다음 명령을 사용하여 I/C 상태를 확인합니다.

sudo systemctl status instance-controller.service

2.    다운된 상태인 경우 다음 명령을 사용하여 I/C를 다시 시작합니다.

sudo systemctl start instance-controller.service

Amazon EMR 4.x~2.x 릴리스 버전:

1.    다음 명령을 사용하여 I/C 상태를 확인합니다.

sudo /etc/init.d/instance-controller status

2.    다운된 상태인 경우 다음 명령을 사용하여 I/C를 다시 시작합니다.

sudo /etc/init.d/instance-controller start

로그 파일을 분석하여 메모리 및 디스크 문제 해결

  1. 종료 방지가 켜져 있는 경우 SSH를 사용하여 프라이머리 노드에 연결합니다. 그런 다음 인스턴스 상태 로그 파일을 검토합니다.
  2. 인스턴트 상태 로그에 나열된 메모리 및 디스크와 같은 인스턴스 지표를 분석합니다. free -mdf -h와 같은 Linux 명령을 사용하여 이러한 지표를 분석할 수 있습니다.
  3. 로그 파일 결과를 사용하여 프라이머리 노드에서 많은 양의 디스크 또는 메모리를 사용하는 이유를 확인할 수 있습니다.

프라이머리 노드 EC2 인스턴스 상태 검사 실패 문제 해결

  • 인스턴스 상태 확인 지표를 확인하여 프라이머리 인스턴스 상태 확인이 실패했는지 확인합니다.
  • 인스턴스 상태 확인 실패 문제를 해결합니다. EC2 인스턴스를 시작하고 중지하면 EMR 클러스터가 종료된다는 점에 유의하십시오.

종료 방지 기능이 꺼져 있고 클러스터가 이미 종료된 프라이머리 노드의 문제를 해결합니다.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?