emr on eks를 적용하면 spark history server를 사용하고 싶은데, ec2의 주소로 접근이 어려워서 직접 띄우기로 하였다.
event log 설정과 docker를 활용한 띄우기는 아래 글들을 참고하여서 로컬에서 테스트는 잘 진행했다.
https://aws.github.io/aws-emr-containers-best-practices/troubleshooting/docs/self-hosted-shs/
https://docs.aws.amazon.com/glue/latest/dg/monitor-spark-ui-history.html
추가로,
1. docker를 이용해 직접 띄우기 보다 eks 클러스터를 이용해 띄우기
2. access_key, secret_key 대신에 iam role 활용하기
위 2개를 달성하고자 하였다.
1번은 deployment와 service account를 생성하고 deployment에 serviceAccountName 값을 설정해서 띄웠는데, 막상 event-log 경로를 읽으려 하니 아무 내역도 나오지 않았다.
pod에 접근해서 s3 접근을 해도 잘 되는 걸 보면 설정은 된 것 같은데 이상했다..
며칠 간 헤매다가 아래 글을 발견하여 해결했다.
env에 SPARK_HISTORY_OPTS 를 설정하는데
-Dspark.hadoop.fs.s3a.aws.credentials.provider=com.amazonaws.auth.WebIdentityTokenCredentialsProvider 값을 추가로 줘야 한다.
-Dspark.history.fs.logDirectory=s3a://my-bucket/event-logs/ -Dspark.hadoop.fs.s3a.aws.credentials.provider=com.amazonaws.auth.WebIdentityTokenCredentialsProvider
https://github.com/bbenzikry/spark-eks/issues/1
'Programming > Tip&Informaion' 카테고리의 다른 글
[log4j2] log4j2 설정법 및 spark operator 연동 (feat. datahub 로깅) (0) | 2024.10.18 |
---|---|
[실수노트] aws에서 여러 eks cluster에서 karpenter 운영 시 실수 (0) | 2024.04.18 |
knative/istio activator 종료 및 재실행 현상 (0) | 2024.02.19 |
[Spark/Scala] NullPointerException 발생 - Some(null) 문제 (1) | 2024.01.25 |
[실수노트] spark sql 에서 concat 함수 null 처리 (0) | 2024.01.17 |