엔지니어 블로그
[Error] Airflow SparkKubernetesOperator + postgresql Dependency 본문
환경
Ubuntu 22.04
Airflow
Spark On Kubernetes
에러 내용
Airflow에서 SparkKubernetesOperator를 사용하고 있는데 Spark가 Postgresql Driver를 찾지 못하는 에러다.
py4j.protocol.Py4JJavaError: An error occurred while calling o67.load.
: java.lang.ClassNotFoundException: org.postgresql.Driver
해결 과정
단순히 postgresql.jar 파일만 구해서 Spark Session 만들 때 설정해주면 될 것 같았다.
.config("spark.driver.extraClassPath", "/opt/spark/data/postgresql-42.7.5.jar")
로컬에서 진행한 결과 성공이었다. 그래서 Airflow에 옮겨 넣고 다시 실행했으나 동일한 에러가 발생했다.
어떻게든 해결하고자 spark driver Pod 내부에 진입해서 jar 파일이 모여있는 곳을 발견하고 /opt/spark/jars에 수동으로 jar 파일을 넣어준 후 pyspark를 실행해서 코드를 진행해보니 성공했다.
들뜬 마음으로 Airflow에서 실행해봤으나 실패.. 뭐가 문젠지 알 수 없었다. 그래서 찾아 간 곳은 공식문서였다. 역시 공식문서를 제대로 봐야 한다. Spark Driver를 정의하는 yaml에 다음 내용을 넣고 실행했다.
spec:
sparkConf:
spark.jars.ivy: "/tmp/ivy"
spark.jars.repositories: "https://mvnrepository.com/artifact/org.postgresql/postgresql"
spark.jars.packages: "org.postgresql:postgresql:42.7.5"
성공이다. 잘 실행 되었다. 앞으로 에러가 발생하면 공식문서를 조금 더 꼼꼼히 찾아보데 힘을 쏟아야겠다.
'에러와 마주했을때' 카테고리의 다른 글
[Error] Pyhton Postgresql 연동 에러 (.env) (0) | 2025.04.05 |
---|---|
[Error] Spark Error (1) | 2025.03.28 |
[Error] Spark Type error (0) | 2025.03.10 |
[Error] Cloud Storage parquet 추가 안됨 (0) | 2025.03.05 |
[Error] Spark on K8S 실행 에러 (0) | 2025.02.28 |