버전
- Spark 2.4.8, Scala 2.11.12
Spark 2.4.8, Scala 2.11.12
회사에서 마이그래이션을 위해서 새로 구현한 Spark 배치/스트리밍을 서버에 배포하여 실행 테스트를 해보니 아래와 같은 에러가 발생하였다.
diagnostics: User class threw exception: java.lang.NoSuchMethodError: scala.Product.$init$(Lscala/Product;)V
위 에러는 Scala의 메소드를 실행시킬 수 없다는 에러 문구다
해당 에러가 발생하는 곳을 따라가보니 발생하는 곳을 확인해보니 case class에서 발생하는 에러였다.
case class TableInfo(serviceType: String, databaseName: String, tableName: String)
확인해보니, 서버에 구축된 Spark의 Scala 버전과 Build시 사용하는 Sacla 버전이 달라 문제가 발생한 것이였다.
spark 2.4.8버전이기때문에 당연히 scala 2.12버전으로 구축 했을 줄 알았는데 확인해보니 Scala 2.11.12 버전으로 설치해 놨었다..
spark 버전 확인하는 방법은 다음과 같다
[~]$ spark-sql --version
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 2.4.8.3.1.0.0-2
/_/
Using Scala version 2.11.12, Java HotSpot(TM) 64-Bit Server VM, 1.8.0_192
[~]$ spark-shell --version
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 2.4.8.3.1.0.0-2
/_/
Using Scala version 2.11.12, Java HotSpot(TM) 64-Bit Server VM, 1.8.0_192
다음 부터는 공식홈페이지에 아래와 같이 scala 2.12를 사용해야한다고 해서 당연히 그렇게 구축되어 있다고 생각하면 안 되겠다. 개발전에 구축된 버전을 먼저 확인하고 개발을 진행해야겠다.
Spark runs on Java 8, Python 2.7+/3.4+ and R 3.5+. For the Scala API, Spark 2.4.8 uses Scala 2.12. You will need to use a compatible Scala version (2.12.x).
'프로그래밍 및 IT > 에러 및 잡버그' 카테고리의 다른 글
데이터 이전 후 spark application 구동 시 발생한 NullPointerException (0) | 2023.08.16 |
---|---|
org.apache.spark.sql.AnalysisException: Table or view not found: (0) | 2023.07.27 |
com.mysql.jdbc.PacketTooBigException: Packet for query is too large (0) | 2023.07.19 |
git submodule 에러 (0) | 2021.05.24 |
장고 ( VSCode ) - 도커 ( Oracle ) 연결 에러 (0) | 2021.05.21 |