0
Zeppelin의 인터프리터에 대한 의존성을 제 항아리로 제공하고 있습니다. 위에서 언급 한 jar의 서비스 호출을 포함하는 노트북을 실행하는 동안 노트북은 오류 상태로 남아 있습니다. 예외 다음 제플린 로그 쇼 : Zeppelin : 노트북을 실행하는 중에 오류가 발생했습니다.
Caused by: java.lang.NoClassDefFoundError: scala/reflect/internal/AnnotationInfos$ErroneousAnnotation$
at scala.tools.nsc.interpreter.ReplGlobal$$anon$1.newTyper(ReplGlobal.scala:34)
at scala.tools.nsc.typechecker.Namers$Namer.<init>(Namers.scala:58)
at scala.tools.nsc.typechecker.Namers$NormalNamer.<init>(Namers.scala:50)
at scala.tools.nsc.typechecker.Namers$class.newNamer(Namers.scala:51)
at scala.tools.nsc.interpreter.ReplGlobal$$anon$1.newNamer(ReplGlobal.scala:23)
at scala.tools.nsc.typechecker.Analyzer$namerFactory$$anon$1.apply(Analyzer.scala:43)
at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:430)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:397)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:397)
at scala.collection.Iterator$class.foreach(Iterator.scala:893)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1336)
at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:397)
at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1625)
at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1610)
at scala.tools.nsc.Global$Run.compileSources(Global.scala:1605)
at scala.tools.nsc.interpreter.IMain.compileSourcesKeepingRun(IMain.scala:388)
at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.compileAndSaveRun(IMain.scala:804)
at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.compile(IMain.scala:763)
at scala.tools.nsc.interpreter.IMain$Request.compile$lzycompute(IMain.scala:939)
at scala.tools.nsc.interpreter.IMain$Request.compile(IMain.scala:934)
at scala.tools.nsc.interpreter.IMain.compile(IMain.scala:531)
at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:519)
at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:517)
... 18 more
그냥 병에 대한 간단한 아이디어를 제공하기 위해, 그것은 기본적으로 읽고 스파크 스트리밍을 사용 카프카에 쓰고있다.
이 코드는 스칼라로 작성되었으며, 나는 Gradle을 사용하여 Fat-jar를 만들고있다. 이상하게도 내가 SBT를 사용하여 jar를 빌드하면 잘 작동한다 (어셈블리 플러그인 사용).
plugins {
id "com.github.johnrengelman.shadow" version "1.2.3"
}
group 'com.demo'
version '1.0-SNAPSHOT'
apply plugin: 'java'
apply plugin: 'scala'
sourceCompatibility = 1.8
configurations { providedCompile }
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
providedCompile group: 'org.apache.spark', name: 'spark-core_2.11', version: '2.0.0'
providedCompile group: 'org.apache.spark', name: 'spark-sql_2.11', version: '2.0.0'
compile group: 'org.apache.spark', name: 'spark-streaming_2.11', version: '2.0.0'
compile group: 'org.apache.spark', name: 'spark-streaming-kafka_2.11', version: '1.6.2'
compile group: 'org.apache.spark', name: 'spark-catalyst_2.11', version: '2.0.0'
compile group: 'org.apache.kafka', name: 'kafka_2.11', version: '0.9.0.1'
compile group: 'org.apache.kafka', name: 'kafka-clients', version: '0.9.0.1'
testCompile group: 'junit', name: 'junit', version: '4.11'
}
shadowJar {
zip64 true
}
build.dependsOn(shadowJar);
sourceSets.main.compileClasspath += configurations.providedCompile
sourceSets.test.compileClasspath += configurations.providedCompile
sourceSets.test.runtimeClasspath += configurations.providedCompile