-
[Trouble shooting] Datahub S3 메타데이터 주입시 에러 발생Project/D.D.P (Datahub) 2023. 7. 10. 11:08728x90반응형
처음 발생한 에러는 다음과 같다.
File "/home/ubuntu/.local/lib/python3.10/site-packages/datahub/ingestion/run/pipeline.py", line 122, in _add_init_error_context raise PipelineInitError(f"Failed to {step}: {e}") from e datahub.ingestion.run.pipeline.PipelineInitError: Failed to configure the source (s3): Java gateway process exited before sending its port number
위 에러를 보고 자바가 설치되어있지 않기 때문이라고 생각해서 자바를 설치했다.
sudo apt-get update sudo apt upgrade sudo apt-get install openjdk-11-jdk
그 다음 자바 프로파일을 만들어 적용시킨다.
sudo vi /etc/profile.d/java.sh ### #java profile 내용 export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH ### source /etc/profile
다시 메타데이터 주입 cmd를 실행시키니 다음과 같은 에러가 발생했다.
py4j.protocol.Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe. : org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 9.0 failed 1 times, most recent failure: Lost task 0.0 in stage 9.0 (TID 9, ip-172-31-20-58.ap-northeast-2.compute.internal, executor driver): java.io.IOException: Cannot run program "python": error=2, No such file or directory
이 에러는 spark가 설치되어 있지 않아 생긴 에러다. 공식문서에 보면 S3 메타데이터 주입 기능을 사용하기 위해서는 spark와 hadoop이 설치되어 있어야한다고 나와있다.
그래서 spark 홈페이지에 들어가서 설치했다.
release version을 선택해야하는데 3.0이 없어 그냥 3.3.2 with hadoop으로 설치했더니 다 설치하고 다시 메타데이터 주입시 다음과 같은 에러가 떴다. (공식문서에 적혀있는 버전은 Spark 3.0.3 with Hadoop 3.2)
Command failed: An error occurred while calling o62.run. : java.lang.NoSuchMethodError: org.apache.spark.sql.catalyst.expressions.aggregate.AggregateFunction.toAggregateExpression(Z)Lorg/apache/spark/sql/catalyst/expressions/aggregate/AggregateExpression;
딱 봐도 버전문제라는 삘이 왔다. 그래서 결국 다시 돌아가서 아카이브된 이전 버전 다운로드 링크를 찾아서 다운받은 후에야 성공적으로 메타데이터를 주입할 수 있었다.
sudo wget https://archive.apache.org/dist/spark/spark-3.0.2/spark-3.0.2-bin-hadoop3.2.tgz sudo rm spark-*-.tgz sudo mv spark-* /opt/spark sudo vi /etc/profile.d/spark.sh source /etc/profile
참고로 spark profile은 다음과 같이 설정하면 된다.
export SPARK_HOME=/opt/spark export PATH=$SPARK_HOME/bin:$PATH export PYSPARK=/usr/bin/python3 export PYSPARK_PYTHON=python3.10
결론: 공식문서 말을 잘 듣자
728x90반응형'Project > D.D.P (Datahub)' 카테고리의 다른 글