반응형
시스템 개요
- zeppelin 0.8.1
- spark 2.4.0
현상
- zeppelin 에서 spark-sql을 사용할 때 (yarn client 모드), select 쿼리가 수행되지 않는다.
- spark-sql CLI에서는 정상적으로 수행된다.
- 에러 내용
java.io.InvalidClassException: org.apache.commons.lang3.time.FastDateParser; local class incompatible: stream classdesc serialVersionUID = 2, local class serialVersionUID = 3
원인
- spark는 commons-lang2.jar 을 사용하고 zeppelin의 spark interpreter는 commons-lang3.jar 를 사용한다.
- 그러나 스파크 client 모드로 수행할 때, executor 노드에는 comons-lang2.jar 가 없다.
- 그래서 클래스 버전이 맞지 않는 에러가 발생한다.
조치
- zeppelin 에서 spark interpreter 설정에 아래 속성을 추가한다.
name | value |
spark.driver.extraClassPath | /usr/lib/spark/jars/commons-lang-2.6.jar |
- zeppelin 에서 spark interpreter를 재시작한다.
- 혹은 /usr/lib/zeppelin/interpreter/spark/spark-interpreter-0.8.1.jar 에서 commons-lang3 버전을 2로 맞춰서 재빌드하여 jar를 수정하는 방법도 있다.
근데 번거롭잖아.
반응형
댓글