기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon Managed Service for Prometheus를 사용하여 Spark 지표 모니터링
Amazon EMR 릴리스 7.1.0 이상에서는 Amazon Managed Service for Prometheus에 EMR Serverless를 통합하여 EMR Serverless 작업 및 애플리케이션에 대한 Apache Spark 지표를 수집할 수 있습니다. 이 통합은 콘솔, AWS EMR Serverless API 또는를 사용하여 작업을 제출하거나 애플리케이션을 생성할 때 사용할 수 있습니다 AWS CLI.
사전 조건
Amazon Managed Service for Prometheus에 Spark 지표를 전달하려면 먼저 다음 사전 조건을 완료해야 합니다.
-
Amazon Managed Service for Prometheus WorkSpace를 생성합니다. 이 Workspace는 수집 엔드포인트 역할을 합니다. 엔드포인트 - 원격 쓰기 URL에 표시되는 URL을 기록합니다. EMR Serverless 애플리케이션을 생성하는 경우 URL을 지정해야 합니다.
-
모니터링 목적으로 Amazon Managed Service for Prometheus에 작업에 대한 액세스 권한을 부여하려면 작업 실행 역할에 다음 정책을 추가합니다.
{ "Sid": "AccessToPrometheus", "Effect": "Allow", "Action": ["aps:RemoteWrite"], "Resource": "arn:aws:aps:
<AWS_REGION>
:<AWS_ACCOUNT_ID>
:workspace/<WORKSPACE_ID>
" }
설정
AWS 콘솔을 사용하여 Amazon Managed Service for Prometheus와 통합된 애플리케이션을 생성하려면
-
애플리케이션을 생성하려면 Amazon EMR Serverless 시작하기를 참조하세요.
-
애플리케이션을 생성하는 동안 사용자 지정 설정 사용을 선택한 다음, 구성하려는 필드에 정보를 지정하여 애플리케이션을 구성합니다.
-
애플리케이션 로그 및 지표에서 Amazon Managed Service for Prometheus에 엔진 지표 전달을 선택한 다음, 원격 쓰기 URL을 지정합니다.
-
원하는 다른 구성 설정을 지정한 다음, 애플리케이션 생성 및 시작을 선택합니다.
AWS CLI 또는 EMR Serverless API 사용
AWS CLI 또는 create-application
start-job-run
명령을 실행할 때 또는 EMR Serverless API를 사용하여 EMR Serverless 애플리케이션을 Amazon Managed Service for Prometheus와 통합할 수도 있습니다.
명령에 prometheusMonitoringConfiguration
을 포함하면 EMR Serverless가 Spark 지표를 수집하고 Amazon Managed Service for Prometheus의 remoteWriteUrl
엔드포인트에 쓰는 에이전트와 함께 Spark 작업을 실행해야 함을 나타냅니다. 그런 다음, 시각화, 알림 및 분석을 위해 Amazon Managed Service for Prometheus의 Spark 지표를 사용할 수 있습니다.
고급 구성 속성
EMR Serverless는 Spark 내 구성 요소(PrometheusServlet
)를 사용하여 Spark 지표를 수집하고 성능 데이터를 Amazon Managed Service for Prometheus와 호환되는 데이터로 변환합니다. 기본적으로 EMR Serverless는 Spark에서 기본값을 설정하고 PrometheusMonitoringConfiguration
을 사용하여 작업을 제출할 때 드라이버 및 실행기 지표를 구문 분석합니다.
다음 표에서는 Amazon Managed Service for Prometheus로 지표를 전송하는 Spark 작업을 제출하는 경우 구성할 수 있는 모든 속성을 설명합니다.
Spark 속성 | 기본값 | 설명 |
---|---|---|
spark.metrics.conf.*.sink.prometheusServlet.class |
org.apache.spark.metrics.sink.PrometheusServlet |
Spark가 Amazon Managed Service for Prometheus로 지표를 전송하는 데 사용하는 클래스. 기본 동작을 재정의하려면 사용자 지정 클래스를 지정합니다. |
spark.metrics.conf.*.source.jvm.class |
org.apache.spark.metrics.source.JvmSource |
Spark가 기본 Java 가상 머신에서 중요한 지표를 수집하고 전송하는 데 사용하는 클래스. JVM 지표 수집을 중지하려면 빈 문자열(예: |
spark.metrics.conf.driver.sink.prometheusServlet.path |
/metrics/prometheus |
Amazon Managed Service for Prometheus가 드라이버에서 지표를 수집하는 데 사용하는 고유한 URL. 기본 동작을 재정의하려면 자체 경로를 지정합니다. 드라이버 지표 수집을 중지하려면 빈 문자열(예: |
spark.metrics.conf.executor.sink.prometheusServlet.path |
/metrics/executor/prometheus |
Amazon Managed Service for Prometheus가 실행기에서 지표를 수집하는 데 사용하는 고유한 URL. 기본 동작을 재정의하려면 자체 경로를 지정합니다. 실행기 지표 수집을 중지하려면 빈 문자열(예: |
Spark 지표에 대한 자세한 내용은 Apache Spark metrics
고려 사항 및 제한 사항
Amazon Managed Service for Prometheus를 사용하여 EMR Serverless에서 지표를 수집하는 경우 다음 고려 사항 및 제한 사항을 고려합니다.
-
Amazon Managed Service for Prometheus가 정식 출시된AWS 리전에서만 EMR Serverless에서 Amazon Managed Service for Prometheus 사용에 대한 지원이 제공됩니다.
-
Amazon Managed Service for Prometheus에서 Spark 지표를 수집하기 위해 에이전트를 실행하는 경우 작업자의 리소스가 더 필요합니다. vCPU 작업자 한 명과 같이 더 작은 작업자 크기를 선택하면 작업 실행 시간이 늘어날 수 있습니다.
-
EMR Serverless에서 Amazon Managed Service for Prometheus 사용 지원은 Amazon EMR 릴리스 7.1.0 이상에서만 사용 가능합니다.
-
지표를 수집하려면 EMR Serverless를 실행하는 동일한 계정에 Amazon Managed Service for Prometheus를 배포해야 합니다.