MetricsSystem.class中的签名引用术语servlet

时间:2015-12-11 15:16:37

标签: scala apache-spark

我尝试使用以下代码向Spark指标系统注册自定义Spark指标源:

val source = new CustomMetricSource()
SparkEnv.get.metricsSystem.registerSource(source)

然后代码编译失败,出现以下错误:

  

错误:scalac:错误:错误的符号引用。 MetricsSystem.class中的签名是指术语servlet   在价值org.jetty中,这是不可用的。   它可能完全从当前类路径或版本中丢失   类路径可能与编译MetricsSystem.class时使用的版本不兼容。   scala.reflect.internal.Types $ TypeError:错误的符号引用。 MetricsSystem.class中的签名是指术语servlet   在价值org.jetty中,这是不可用的。   它可能完全从当前类路径或版本中丢失   类路径可能与编译MetricsSystem.class时使用的版本不兼容。       在scala.reflect.internal.pickling.UnPickler $ Scan.toTypeError(UnPickler.scala:847)       在scala.reflect.internal.pickling.UnPickler $ Scan $ LazyTypeRef.complete(UnPickler.scala:854)       在scala.reflect.internal.pickling.UnPickler $ Scan $ LazyTypeRef.load(UnPickler.scala:863)       在scala.reflect.internal.Symbols $ Symbol.typeParams(Symbols.scala:1489)       at scala.tools.nsc.transform.SpecializeTypes $$ anonfun $ scala $ tools $ nsc $ transform $ SpecializeTypes $$ normalizeMember $ 1.apply(SpecializeTypes.scala:798)       at scala.tools.nsc.transform.SpecializeTypes $$ anonfun $ scala $ tools $ nsc $ transform $ SpecializeTypes $$ normalizeMember $ 1.apply(SpecializeTypes.scala:798)       在scala.reflect.internal.SymbolTable.atPhase(SymbolTable.scala:207)       在scala.reflect.internal.SymbolTable.beforePhase(SymbolTable.scala:215)       at scala.tools.nsc.transform.SpecializeTypes.scala $ tools $ nsc $ transform $ SpecializeTypes $$ normalizeMember(SpecializeTypes.scala:797)       在scala.tools.nsc.transform.SpecializeTypes $$ anonfun $ 22.apply(SpecializeTypes.scala:751)       在scala.tools.nsc.transform.SpecializeTypes $$ anonfun $ 22.apply(SpecializeTypes.scala:749)       在scala.collection.TraversableLike $$ anonfun $ flatMap $ 1.apply(TraversableLike.scala:251)       在scala.collection.TraversableLike $$ anonfun $ flatMap $ 1.apply(TraversableLike.scala:251)       在scala.collection.immutable.List.foreach(List.scala:318)       在scala.collection.TraversableLike $ class.flatMap(TraversableLike.scala:251)       在scala.collection.AbstractTraversable.flatMap(Traversable.scala:105)       at scala.tools.nsc.transform.SpecializeTypes.specializeClass(SpecializeTypes.scala:749)       在scala.tools.nsc.transform.SpecializeTypes.transformInfo(SpecializeTypes.scala:1172)       at scala.tools.nsc.transform.InfoTransform $ Phase $$ anon $ 1.transform(InfoTransform.scala:38)       在scala.reflect.internal.Symbols $ Symbol.rawInfo(Symbols.scala:1321)       在scala.reflect.internal.Symbols $ Symbol.info(Symbols.scala:1241)       在scala.reflect.internal.Symbols $ Symbol.isDerivedValueClass(Symbols.scala:658)       在scala.reflect.internal.Symbols $ Symbol.isMethodWithExtension(Symbols.scala:661)       at scala.tools.nsc.transform.Erasure $ ErasureTransformer $$ anon $ 1.preEraseNormalApply(Erasure.scala:1100)       在scala.tools.nsc.transform.Erasure $ ErasureTransformer $$ anon $ 1.preEraseApply(Erasure.scala:1195)       在scala.tools.nsc.transform.Erasure $ ErasureTransformer $$ anon $ 1.preErase(Erasure.scala:1205)       在scala.tools.nsc.transform.Erasure $ ErasureTransformer $$ anon $ 1.transform(Erasure.scala:1280)       在scala.tools.nsc.transform.Erasure $ ErasureTransformer $$ anon $ 1.transform(Erasure.scala:1030)       在scala.reflect.internal.Trees $$ anonfun $ itransform $ 2.apply(Trees.scala:1235)       在scala.reflect.internal.Trees $$ anonfun $ itransform $ 2.apply(Trees.scala:1233)       在scala.reflect.api.Trees $ Transformer.atOwner(Trees.scala:2936)       在scala.tools.nsc.transform.TypingTransformers $ TypingTransformer.atOwner(TypingTransformers.scala:34)       在scala.tools.nsc.transform.TypingTransformers $ TypingTransformer.atOwner(TypingTransformers.scala:28)       在scala.tools.nsc.transform.TypingTransformers $ TypingTransformer.atOwner(TypingTransformers.scala:19)       在scala.reflect.internal.Trees $ class.itransform(Trees.scala:1232)       在scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13)       在scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13)       在scala.reflect.api.Trees $ Transformer.transform(Trees.scala:2897)       在scala.tools.nsc.transform.TypingTransformers $ TypingTransformer.transform(TypingTransformers.scala:48)       在scala.tools.nsc.transform.Erasure $ ErasureTransformer $$ anon $ 1.transform(Erasure.scala:1288)       在scala.tools.nsc.transform.Erasure $ ErasureTransformer $$ anon $ 1.transform(Erasure.scala:1030)       在scala.reflect.api.Trees $ Transformer $$ anonfun $ transformStats $ 1.apply(Trees.scala:2927)       在scala.reflect.api.Trees $ Transformer $$ anonfun $ transformStats $ 1.apply(Trees.scala:2925)       在scala.collection.immutable.List.loop $ 1(List.scala:170)       在scala.collection.immutable.List.mapConserve(List.scala:186)       在scala.reflect.api.Trees $ Transformer.transformStats(Trees.scala:2925)       在scala.reflect.internal.Trees $ class.itransform(Trees.scala:1276)       在scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13)       在scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13)       在scala.reflect.api.Trees $ Transformer.transform(Trees.scala:2897)       在scala.tools.nsc.transform.TypingTransformers $ TypingTransformer.scala $ tools $ nsc $ transform $ TypingTransformers $ TypingTransformer $$ super $ transform(TypingTransformers.scala:44)       在scala.tools.nsc.transform.TypingTransformers $ TypingTransformer $$ anonfun $ transform $ 1.apply(TypingTransformers.scala:44)       在scala.tools.nsc.transform.TypingTransformers $ TypingTransformer $$ anonfun $ transform $ 1.apply(TypingTransformers.scala:44)       在scala.reflect.api.Trees $ Transformer.atOwner(Trees.scala:2936)       在scala.tools.nsc.transform.TypingTransformers $ TypingTransformer.atOwner(TypingTransformers.scala:34)       在scala.tools.nsc.transform.TypingTransformers $ TypingTransformer.transform(TypingTransformers.scala:44)       在scala.tools.nsc.transform.Erasure $ ErasureTransformer $$ anon $ 1.transform(Erasure.scala:1292)       在scala.tools.nsc.transform.Erasure $ ErasureTransformer $$ anon $ 1.transform(Erasure.scala:1030)       在scala.reflect.api.Trees $ Transformer.transformTemplate(Trees.scala:2904)       在scala.reflect.internal.Trees $$ anonfun $ itransform $ 4.apply(Trees.scala:1280)       在scala.reflect.internal.Trees $$ anonfun $ itransform $ 4.apply(Trees.scala:1279)       在scala.reflect.api.Trees $ Transformer.atOwner(Trees.scala:2936)       在scala.tools.nsc.transform.TypingTransformers $ TypingTransformer.atOwner(TypingTransformers.scala:34)       在scala.tools.nsc.transform.TypingTransformers $ TypingTransformer.atOwner(TypingTransformers.scala:28)       在scala.tools.nsc.transform.TypingTransformers $ TypingTransformer.atOwner(TypingTransformers.scala:19)       在scala.reflect.internal.Trees $ class.itransform(Trees.scala:1278)       在scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13)       在scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13)       在scala.reflect.api.Trees $ Transformer.transform(Trees.scala:2897)       在scala.tools.nsc.transform.TypingTransformers $ TypingTransformer.transform(TypingTransformers.scala:48)       在scala.tools.nsc.transform.Erasure $ ErasureTransformer $$ anon $ 1.transform(Erasure.scala:1292)       在scala.tools.nsc.transform.Erasure $ ErasureTransformer $$ anon $ 1.transform(Erasure.scala:1030)       在scala.reflect.api.Trees $ Transformer $$ anonfun $ transformStats $ 1.apply(Trees.scala:2927)       在scala.reflect.api.Trees $ Transformer $$ anonfun $ transformStats $ 1.apply(Trees.scala:2925)       在scala.collection.immutable.List.loop $ 1(List.scala:170)       在scala.collection.immutable.List.mapConserve(List.scala:186)       在scala.reflect.api.Trees $ Transformer.transformStats(Trees.scala:2925)       在scala.reflect.internal.Trees $$ anonfun $ itransform $ 7.apply(Trees.scala:1298)       在scala.reflect.internal.Trees $$ anonfun $ itransform $ 7.apply(Trees.scala:1298)       在scala.reflect.api.Trees $ Transformer.atOwner(Trees.scala:2936)       在scala.tools.nsc.transform.TypingTransformers $ TypingTransformer.atOwner(TypingTransformers.scala:34)       在scala.tools.nsc.transform.TypingTransformers $ TypingTransformer.atOwner(TypingTransformers.scala:28)       在scala.tools.nsc.transform.TypingTransformers $ TypingTransformer.atOwner(TypingTransformers.scala:19)       在scala.reflect.internal.Trees $ class.itransform(Trees.scala:1297)       在scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13)       在scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13)       在scala.reflect.api.Trees $ Transformer.transform(Trees.scala:2897)       在scala.tools.nsc.transform.TypingTransformers $ TypingTransformer.scala $ tools $ nsc $ transform $ TypingTransformers $ TypingTransformer $$ super $ transform(TypingTransformers.scala:44)       在scala.tools.nsc.transform.TypingTransformers $ TypingTransformer $$ anonfun $ transform $ 2.apply(TypingTransformers.scala:46)       在scala.tools.nsc.transform.TypingTransformers $ TypingTransformer $$ anonfun $ transform $ 2.apply(TypingTransformers.scala:46)       在scala.reflect.api.Trees $ Transformer.atOwner(Trees.scala:2936)       在scala.tools.nsc.transform.TypingTransformers $ TypingTransformer.atOwner(TypingTransformers.scala:34)       在scala.tools.nsc.transform.TypingTransformers $ TypingTransformer.transform(TypingTransformers.scala:46)       在scala.tools.nsc.transform.Erasure $ ErasureTransformer $$ anon $ 1.transform(Erasure.scala:1292)       在scala.tools.nsc.transform.Erasure $ ErasureTransformer.transform(Erasure.scala:1302)       在scala.tools.nsc.transform.Erasure $ ErasureTransformer.transform(Erasure.scala:888)       在scala.tools.nsc.ast.Trees $ Transformer.transformUnit(Trees.scala:227)       在scala.tools.nsc.transform.Transform $ Phase.apply(Transform.scala:30)       在scala.tools.nsc.Global $ GlobalPhase.applyPhase(Global.scala:464)       在scala.tools.nsc.Global $ GlobalPhase $$ anonfun $ run $ 1.apply(Global.scala:431)       在scala.tools.nsc.Global $ GlobalPhase $$ anonfun $ run $ 1.apply(Global.scala:431)       在scala.collection.Iterator $ class.foreach(Iterator.scala:727)       在scala.collection.AbstractIterator.foreach(Iterator.scala:1157)       在scala.tools.nsc.Global $ GlobalPhase.run(Global.scala:431)       在scala.tools.nsc.Global $ Run.compileUnitsInternal(Global.scala:1583)       在scala.tools.nsc.Global $ Run.compileUnits(Global.scala:1557)       在scala.tools.nsc.Global $ Run.compileSources(Global.scala:1553)       在scala.tools.nsc.Global $ Run.compile(Global.scala:1662)       at xsbt.CachedCompiler0.run(CompilerInterface.scala:115)       at xsbt.CachedCompiler0.run(CompilerInterface.scala:94)       在xsbt.CompilerInterface.run(CompilerInterface.scala:22)       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)       at java.lang.reflect.Method.invoke(Method.java:606)       在sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:101)       在sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:47)       at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:41)       在org.jetbrains.jps.incremental.scala.local.IdeaIncrementalCompiler.compile(IdeaIncrementalCompiler.scala:29)       在org.jetbrains.jps.incremental.scala.local.LocalServer.compile(LocalServer.scala:26)       在org.jetbrains.jps.incremental.scala.remote.Main $ .make(Main.scala:67)       在org.jetbrains.jps.incremental.scala.remote.Main $ .nailMain(Main.scala:24)       在org.jetbrains.jps.incremental.scala.remote.Main.nailMain(Main.scala)       at sun.reflect.GeneratedMethodAccessor2.invoke(未知来源)       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)       at java.lang.reflect.Method.invoke(Method.java:606)       在com.martiansoftware.nailgun.NGSession.run(NGSession.java:319)

我使用的IDE是Jetbrains IntelliJIDea 15 CE。

我怀疑它的类路径问题,但不确定如何进一步调试。

1 个答案:

答案 0 :(得分:1)

您需要添加一个码头依赖项,例如对于sbt "org.eclipse.jetty" % "jetty-servlet" % "8.1.18.v20150929"