본문 바로가기
카테고리 없음

[spark] spark 2.4 incompatibility with commons-lang3 in Zeppelin

by 잇서니 2020. 6. 23.
반응형

 

시스템 개요

  • 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를 수정하는 방법도 있다. 근데 번거롭잖아.
반응형

댓글