2017-09-22 9 views
3

최근에 우리의 어플리케이션에서 스파크를 2.2.0으로 업그레이드 했으므로 런타임시 Jackson 2.6.5 jar가 나타납니다.잭슨 겹침을 유발하는 스파크 및 탄성체

그러나 우리는 잭슨 2.8.6 (Elastic 5.5.0으로 인해) 서비스가 필요합니다.이 서비스에는 응용 프로그램의 lib 폴더에서 Jackson 2.8.6을 참조하는 매니페스트가 있습니다.

그래서 잭슨 단지 두 가지 버전의 런타임에로드하고 불꽃이 버전이 포착 창에

(lib 폴더 대신 자신의 항아리 폴더에서 2.6.5에서 2.8.6) 잘못 하나를 따기있다 두 버전이 여전히 런타임에로드되었지만 올바른 버전입니다.

그러나 Linux에서는 실패합니다.

어떻게 해결할 수 있습니까?

+0

가 어떻게 스파크 작업을 제출하는 것은 스파크 제출을 통해입니까? 그렇다면 plz 전체 명령 세부 사항을 언급 –

답변

2

클래스 경로 programatically using addjar, 파일 spark-defaults.conf 또는 스파크 제출 플래그에 jar를 추가 할 수 있습니다.

또한, 우리는 충돌

을 완화하기 위해 여기 runtime-environment docs에서 2 곳이 드라이버의 클래스를로드 할 때 사용자가 추가 한 항아리에게 스파크의 자신의 항아리를 통해 우선 순위를 부여할지 여부
spark.driver.userClassPathFirst 

기본 거짓 (실험). 이 기능은 Spark의 종속성과 사용자 종속성 간의 충돌을 완화하는 데 사용할 수 있습니다. 참고 : 현재 실험중인 기능입니다. 이는 클러스터 모드에서만 사용됩니다.

spark.executor.userClassPathFirst 

기본 거짓 (실험) 같은 spark.driver.userClassPathFirst로 기능하지만, 인스턴스를 집행하기 위해 적용. SparkConf에 직접 설정

속성은 다음 플래그 spark-submit 또는 spark-shell에 전달, 가장 높은 우선 순위를 가지고, 다음 spark-defaults.conf 파일의 옵션이

+0

Ashwini : 괜찮 으면 소유자로 답변을 수락하십시오. 감사! –