-
Glue Spark UI 서버 띄워서 Job 상세 실행 내역 확인하기Data Engineering/AWS, Spark 2023. 1. 6. 11:33728x90반응형
1. aws glue sample 레포지토리에서 Glue 버전에 맞는 docker file과 pom.xml을 다운받는다.
2. 다음 명령어로 도커 이미지를 빌드한다.
docker build -t glue/sparkui:latest
3. 다음 중 하나의 방법으로 컨테이너를 띄운다.
- Glue job event log s3 uri는 s3://.. 가 아닌 s3a://... 로 넣어야한다.
- 만약 자주 실행한다면 로그 디렉토리 경로 등을 환경변수로 저장해놓는 것이 편하다.
- 이 포스팅을 볼 정도면 다들 알겠지만 백그라운드로 실행하고 싶지 않다면 -itd가 아닌 -it로 run하면 된다.
- Beijing, Ningxia 리전의 경우 추가적인 옵션이 필요하다. 위 레포지토리의 README.md를 참고하면 된다.
1) AWS Profile이 설정되어 있는 경우
- ~/.aws안의 config 와 credentials파일에서 multi profile을 설정할 수 있다.
docker run -itd -v ~/.aws:/root/.aws -e AWS_PROFILE={프로필 이름} -e SPARK_HISTORY_OPTS="$SPARK_HISTORY_OPTS -Dspark.history.fs.logDirectory={로그 디렉토리 경로} -Dspark.hadoop.fs.s3a.aws.credentials.provider=com.amazonaws.auth.DefaultAWSCredentialsProviderChain" -p 18080:18080 glue/sparkui:latest "/opt/spark/bin/spark-class org.apache.spark.deploy.history.HistoryServer"
2) 직접 AWS 인증 정보 커맨드에 넣어서 띄우기
- 위 명령어에서 -e 옵션의 AWS_PROFILE 변수와 -v 옵션을 다음으로 대체한다.
- -Dspark.haddop.fs.s3a.access.key : AWS access key
- -Dspark.hadoop.fs.s3a.secret.key : AWS secret access key
docker run -itd -e SPARK_HISTORY_OPTS="$SPARK_HISTORY_OPTS -Dspark.history.fs.logDirectory={로그 디렉토리 경로} -Dspark.hadoop.fs.s3a.access.key={AWS access key ID} -Dspark.hadoop.fs.s3a.secret.key={AWS 시크릿 키}" -p 18080:18080 glue/sparkui:latest "/opt/spark/bin/spark-class org.apache.spark.deploy.history.HistoryServer"
4. 127.0.0.1:18080 으로 접속하면 SparkUI 화면이 나온다. 각 Job에 들어가면 해당 Job의 spark 처리 과정을 상세하게 볼 수 있어서 병목 개선 등 효율성 모니터링에 사용할 수 있다.
728x90반응형'Data Engineering > AWS, Spark' 카테고리의 다른 글