Apache Spark 웹 UI를 사용하여 작업 모니터링 - AWS Glue

Apache Spark 웹 UI를 사용하여 작업 모니터링

Apache Spark 웹 UI를 사용하여 AWS Glue 작업 시스템에서 실행 중인 AWS Glue ETL 작업과 AWS Glue 개발 엔드포인트에서 실행 중인 Spark 애플리케이션을 모니터링하고 디버그할 수 있습니다. Spark UI를 사용하면 각 작업에 대해 다음을 확인할 수 있습니다.

  • 각 Spark 단계의 이벤트 타임라인

  • 작업의 방향성 비순환 그래프(DAG)

  • SparkSQL 쿼리에 대한 물리적, 논리적 계획

  • 각 작업에 대한 기본 Spark 환경 변수

AWS Glue 콘솔 또는 AWS Command Line Interface(AWS CLI)를 사용하여 Spark UI를 활성화할 수 있습니다. Spark UI를 사용하면 AWS Glue 개발 엔드포인트의 AWS Glue ETL 작업 및 Spark 애플리케이션은 Amazon Simple Storage Service(Amazon S3)에서 지정한 위치에 Spark 이벤트 로그를 유지할 수 있습니다. AWS Glue는 샘플 AWS CloudFormation 템플릿도 제공하므로 이벤트 로그를 사용하여 Spark 기록 서버를 시작하고 Spark UI를 표시할 수 있습니다. 작업을 실행하는 동안 실시간으로, 그리고 작업이 완료된 후에도 Amazon S3에 지속된 이벤트 로그를 Spark UI와 함께 사용할 수 있습니다.

다음은 두 데이터 원본에서 데이터를 읽고, 조인 변환을 수행하여 Parquet 포맷으로 Amazon S3에 쓰는 Spark 애플리케이션의 예입니다.

import sys from awsglue.transforms import * from awsglue.utils import getResolvedOptions from pyspark.context import SparkContext from awsglue.context import GlueContext from awsglue.job import Job from pyspark.sql.functions import count, when, expr, col, sum, isnull from pyspark.sql.functions import countDistinct from awsglue.dynamicframe import DynamicFrame args = getResolvedOptions(sys.argv, ['JOB_NAME']) sc = SparkContext() glueContext = GlueContext(sc) spark = glueContext.spark_session job = Job(glueContext) job.init(args['JOB_NAME']) df_persons = spark.read.json("s3://awsglue-datasets/examples/us-legislators/all/persons.json") df_memberships = spark.read.json("s3://awsglue-datasets/examples/us-legislators/all/memberships.json") df_joined = df_persons.join(df_memberships, df_persons.id == df_memberships.person_id, 'fullouter') df_joined.write.parquet("s3://aws-glue-demo-sparkui/output/") job.commit()

다음 DAG 시각화는 이 Spark 작업의 여러 단계를 보여줍니다.


      작업 0의 완료된 2단계를 보여주는 Spark UI의 스크린샷.

작업에 대한 다음 이벤트 타임라인은 다양한 Spark 실행기의 시작, 실행 및 종료를 보여줍니다.


      다양 Spark 실행기의 완료, 실패 및 활성 단계를 보여주는 Spark UI의 스크린샷.

다음 화면은 SparkSQL 쿼리 계획의 세부 정보를 보여줍니다.

  • 구문 분석된 논리적 계획

  • 분석된 논리적 계획

  • 최적화된 논리적 계획

  • 실행할 물리적 계획


      SparkSQL 쿼리 계획 : 구문 분석, 분석 및 최적화된 논리적 계획과 실행할 물리적 계획.

AWS Glue 지속 로깅을 사용하여 Spark 드라이버 및 실행기에 대한 Spark 애플리케이션 로그 스트림은 계속 볼 수 있습니다. 자세한 내용은 AWS Glue 작업에 대한 지속 로깅을 참조하십시오.