2017-09-18 7 views
1

내 응용 프로그램에서 스파크 컨텍스트를 만들려고 할 때 다음과 같은 오류가 발생합니다.스파크 컨텍스트 생성 오류

Exception in thread "main" java.lang.NoClassDefFoundError: scala/Product$class 
     at org.apache.spark.SparkConf$DeprecatedConfig.<init>(SparkConf.scala:723) 
     at org.apache.spark.SparkConf$.<init>(SparkConf.scala:571) 
     at org.apache.spark.SparkConf$.<clinit>(SparkConf.scala) 
     at org.apache.spark.SparkConf.set(SparkConf.scala:92) 
     at org.apache.spark.SparkConf.set(SparkConf.scala:81) 
     at org.apache.spark.SparkConf.setAppName(SparkConf.scala:118) 
     at sparkEnvironment$.<init>(Ticket.scala:33) 
     at sparkEnvironment$.<clinit>(Ticket.scala) 
     at Ticket$.main(Ticket.scala:40) 
     at Ticket.main(Ticket.scala) 
    Caused by: java.lang.ClassNotFoundException: scala.Product$class 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
     ... 10 more 

저는 Spark 2.2.0 및 Scala 버전 2.12.3을 사용하고 있습니다.

scalaVersion := "2.12.3" 

libraryDependencies += "com.typesafe" % "config" % "1.3.1" 
libraryDependencies += "mysql" % "mysql-connector-java" % "5.1.36" 

//Sparks dependencies 
libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "2.2.0" 
libraryDependencies += "org.apache.spark" % "spark-mllib_2.10" % "2.2.0" 

그리고 다음과 같이 컨텍스트가 만들려고하는 조각 :

object sparkEnvironment { 

    Logger.getLogger("org.apache.spark").setLevel(Level.WARN) 
    Logger.getLogger("org.eclipse.jetty.server").setLevel(Level.OFF) 

    val conf : SparkConf = new SparkConf().setAppName("Ticketing").setMaster("local[2]") 
    val sc = new SparkContext(conf) 
} 

object Ticket { 
    def main(args: Array[String]): Unit = { 

    println(sc) 
} 
} 
+1

main 메서드 내에서 sparkContext를 정의하면 문제가 없습니다. –

+0

Nope도 작동하지 않았습니다. – TheShark

+0

실제로 내 문제는, 스파크 컨텍스트 스파크 셸에서 오류없이 만들어지고 코드를 실행하지만 응용 프로그램 (스파크 컨텍스트)에서 생성 할 때 예외를 throw합니다. – TheShark

답변

1

스파크 2.2.0 내장 및 스칼라 2.11와 함께 작동하도록 배포를 다음과 같이 내 build.sbt 보인다 기본적으로. 스칼라로 애플리케이션을 작성하려면 호환되는 스칼라 버전 (예 : 2.11.X)을 사용해야합니다. 그리고 스칼라 버전은 2.12.X입니다. 그것이 예외를 던지고있는 이유입니다.