로그에서 Ray 작업 문제 해결 - AWS Glue

로그에서 Ray 작업 문제 해결

AWS Glue on Ray는 현재 AWS Glue의 미리 보기 릴리스이므로 변경될 수 있습니다.

AWS Glue를 사용하면 작업 실행 중에 Ray 프로세스에서 내보낸 로그에 액세스할 수 있습니다. Ray 작업에서 오류나 예상치 못한 동작이 발생하는 경우 먼저 로그에서 정보를 수집하여 오류의 원인을 파악합니다. 대화형 세션에 대해서도 유사한 로그를 제공합니다. 세션 로그는 /aws-glue/ray/sessions 접두사와 함께 제공됩니다.

Ray 작업 로그 검사

작업이 실패하면 작업 이름과 작업 실행 ID를 수집합니다. 이러한 항목은 AWS Glue 콘솔에서 찾을 수 있습니다. 작업 페이지로 이동한 다음 Runs(실행) 탭으로 이동합니다. Ray 작업 로그는 다음과 같은 전용 CloudWatch 로그 그룹에 저장됩니다.

  • /aws-glue/ray/jobs/script-log/ - 기본 Ray 스크립트에서 내보낸 로그를 저장합니다.

  • /aws-glue/ray/jobs/ray-monitor-log/ - Ray autoscaler 프로세스에서 내보낸 로그를 저장합니다.

  • /aws-glue/ray/jobs/ray-process-logs/ - 각 작업자에 대해 실행 중인 다른 Ray 프로세스(raylet, GCS)에서 내보낸 로그를 저장합니다. 이러한 로그는 각 작업자에 대해 단일 스트림으로 수집됩니다.

  • /aws-glue/ray/jobs/ray-worker-out-logs/ - 클러스터의 각 복제본에 대한 stdout 로그를 저장합니다.

  • /aws-glue/ray/jobs/ray-worker-err-logs/ - 클러스터의 각 복제본에 대한 stderr 로그를 저장합니다.

  • /aws-glue/ray/jobs/ray-runtime-env-log/ - Ray 설정 프로세스에 대한 로그를 저장합니다. 클러스터의 각 작업자에 대한 로그를 저장합니다.

Ray 작업 오류 해결

Ray 로그 그룹의 구성을 이해하고 오류 해결에 도움이 되는 로그 그룹을 찾으려면 Ray 아키텍처에 대한 배경 정보를 알고 있으면 도움이 됩니다.

AWS Glue ETL에서 작업자는 인스턴스에 해당합니다. AWS Glue 작업에 대한 작업자를 구성할 때 해당 작업 전용 인스턴스의 유형과 수량을 설정합니다. Ray에서는 작업자라는 용어를 다양한 방식으로 사용합니다.

Ray에서는 헤드 노드와 워커커 노드를 사용하여 Ray 클러스터 내에서 인스턴스의 책임을 구분합니다. Ray 워커 노드는 분산 계산 결과를 얻기 위해 계산을 수행하는 여러 액터 프로세스를 호스팅할 수 있습니다. 함수의 복제본을 실행하는 액터를 복제본이라고 합니다. 복제본 액터를 작업자 프로세스라고도 합니다. 헤드 노드에서도 복제본을 실행할 수 있습니다.

계산에 기여하는 각 액터는 자체 로그 스트림을 생성합니다. 이를 통해 다음과 같은 몇 가지 인사이트를 얻을 수 있습니다.

  • 로그를 내보내는 프로세스 수가 작업에 할당된 작업자 수보다 많을 수 있습니다. 각 인스턴스의 각 코어에는 주로 액터가 있습니다.

  • Ray 헤드 노드는 클러스터 관리 및 시작 로그를 내보냅니다. 반면 Ray 워커 노드는 수행된 작업에 대한 로그만 내보냅니다.

Ray 아키텍처에 대한 자세한 내용은 Ray 설명서의 아키텍처 백서를 참조하세요.

문제 영역: Amazon S3 액세스

작업 실행 실패 메시지를 확인합니다. 충분한 정보가 제공되지 않는 경우 /aws-glue/ray/jobs/script-log/ 섹션을 확인하세요.

문제 영역: PIP 종속성 관리

/aws-glue/ray/jobs/ray-runtime-env-log/을 검토합니다.

문제 영역: 메인 프로세스의 중간 값 검사

기본 스크립트에서 stderr 또는 stdout에 쓰고 /aws-glue/ray/jobs/script-log/에서 로그를 검색합니다.

문제 영역: 하위 프로세스의 중간 값 검사

remote 함수에서 stderr 또는 stdout에 씁니다. 그런 다음 /aws-glue/ray/jobs/ray-worker-out-logs/ 또는 /aws-glue/ray/jobs/ray-worker-err-logs/에서 로그를 검색합니다. 함수가 복제본에서 실행되었을 수 있으므로 원하는 출력을 찾기 위해 여러 로그를 검사해야 할 수 있습니다.