3단계: 로그 파일 검사 - 아마존 EMR

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

3단계: 로그 파일 검사

다음 단계는 로그 파일을 살펴보면서 오류 코드 또는 그 외 클러스터에 문제가 발생했을 가능성을 찾아내는 것입니다. 제공되는 로그 파일, 찾을 수 있는 위치, 확인하는 방법에 대한 내용은 로그 파일 보기 단원을 참조하십시오.

발생한 문제를 파악하려면 약간의 조사 작업이 필요할 수 있습니다. Hadoop은 클러스터에 있는 다양한 노드에서 작업을 시도하며 작업을 실행합니다. Amazon은 예측 가능한 작업 시도를 시작하여 먼저 완료되지 않은 다른 작업 시도를 종료할 EMR 수 있습니다. 그러면 컨트롤러, stderr 및 syslog 로그 파일에 실시간으로 로깅되는 중요한 활동이 생성됩니다. 또한 여러 차례의 작업 시도가 동시에 실행되지만 로그 파일은 결과를 선형으로만 표시할 수 있습니다.

부트스트랩 작업 로그에 오류가 있거나 클러스터 시작 중 예기치 못한 구성 변경이 발생하지 않았는지 검사하는 것으로 시작합니다. 이를 시작으로 단계 로그를 살펴보며 오류가 있는 단계의 일부로 시작된 하둡 작업을 찾아냅니다. 하둡 작업 로그를 살펴보며 장애가 발생한 작업 시도를 찾아냅니다. 작업 시도 로그에는 작업 시도를 실패로 만든 요인에 대한 세부 정보가 포함됩니다.

다음 단원에서는 다양한 로그 파일을 이용해 클러스터에 발생한 오류를 찾아내는 방법을 설명합니다.

부트스트랩 작업 로그 확인

부트스트랩 작업은 클러스터가 시작될 때 스크립트를 실행합니다. 이 작업은 흔히 클러스터에 추가 소프트웨어를 설치하거나 구성 설정의 기본 값을 변경하는 용도로 사용됩니다. 이 로그를 보면 클러스터 설정 중에 발생한 오류뿐 아니라 성능에 영향을 미칠 수 있는 구성 설정 변경에 대한 통찰을 얻을 수 있습니다.

단계 로그 확인

네 가지 유형의 단계 로그가 있습니다.

  • 컨트롤러 - Amazon EMR (AmazonEMR) 에서 생성한 파일 중 단계를 실행하려고 시도하는 동안 발생한 오류로 인해 발생하는 파일을 포함합니다. 단계를 로드하는 동안 장애가 발생하면 이 로그에서 스택 트레이스를 볼 수 있습니다. 애플리케이션 로드 또는 액세스 중에 발생한 오류는 매퍼 파일 누락 오류와 마찬가지로 주로 여기에 수록됩니다.

  • stderr - 단계 처리 중에 발생한 오류 메시지를 포함합니다. 애플리케이션 로딩 오류는 주로 여기에 수록됩니다. 이 로그에 스택 트레이스가 포함되기도 합니다.

  • stdout - 매퍼 및 reducer 실행 파일이 생성한 상태를 포함합니다. 애플리케이션 로딩 오류는 주로 여기에 수록됩니다. 이 로그에 애플리케이션 오류 메시지가 포함되기도 합니다.

  • syslog - Apache 및 Hadoop과 같은 Amazon 이외 소프트웨어의 로그를 포함합니다. 스트리밍 오류는 주로 여기에 수록됩니다.

stderr에서 명시적 오류 여부를 검사합니다. stderr에 짧은 오류 목록이 표시된 경우, 오류가 표시되며 단계가 갑자기 중지한 것입니다. 이 현상은 클러스터에서 매퍼와 reducer 애플리케이션 실행 중에 발생한 오류로 인해 가장 자주 발생합니다.

syslog와 컨트롤러의 마지막 줄에 오류나 장애 발생 알림이 있는지 살펴봅니다. 실패한 작업에 대한 메시지, 특히 "Job Failed"가 있는지 살펴봅니다.

작업 시도 로그 확인

이전의 단계 로그 분석에 실패한 작업이 하나 이상 포함된 경우, 해당하는 작업 시도의 로그에 더 자세한 오류 정보가 있는지 조사합니다.

Hadoop 대몬(daemon) 로그 확인

드물지만 하둡 자체에 장애가 발생하기도 합니다. 장애 발생 유무를 알아보려면 하둡 로그를 확인해야 합니다. 각 노드의 /var/log/hadoop/에 있습니다.

JobTracker 로그를 사용하여 실패한 작업 시도를 해당 작업이 실행된 노드에 매핑할 수 있습니다. 작업 시도와 관련된 노드를 알게 되면 해당 노드를 호스팅하는 EC2 인스턴스의 상태를 확인하여 메모리 부족 CPU 또는 메모리 부족과 같은 문제가 발생했는지 확인할 수 있습니다.