不能老是运行,因为java.lang.NoClassDefFoundError的火花应用程序:组织/ PostgreSQL的/驱动器 [英] Can`t run spark app because of java.lang.NoClassDefFoundError: org/postgresql/Driver
问题描述
我不能老是跑吨星火应用程序,因为java.lang.NoClassDefFoundError的:组织/ PostgreSQL的/驱动程序
我也同样喜欢<一个href=\"http://stackoverflow.com/questions/24916852/how-can-i-connect-to-a-postgresql-database-into-apache-spark-using-scala\">How我可以使用Scala连接到PostgreSQL数据库到Apache中星火?但是当我尝试启动我的应用程序我得到这个例外。
异常线程mainjava.lang.NoClassDefFoundError的:组织/ PostgreSQL的/驱动器
在SparkRecommendationMatrix&LT;&初始化GT;(SparkRecommendationMatrix.scala:31)。
在主$。主要(Main.scala:26)
在Main.main(Main.scala)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在java.lang.reflect.Method.invoke(Method.java:606)
在org.apache.spark.deploy.SparkSubmit $ .launch(SparkSubmit.scala:292)
在org.apache.spark.deploy.SparkSubmit $。主要(SparkSubmit.scala:55)
在org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
抛出java.lang.ClassNotFoundException:引起org.postgresql.Driver
在java.net.URLClassLoader的$ 1.run(URLClassLoader.java:366)
在java.net.URLClassLoader的$ 1.run(URLClassLoader.java:355)
在java.security.AccessController.doPrivileged(本机方法)
在java.net.URLClassLoader.findClass(URLClassLoader.java:354)
在java.lang.ClassLoader.loadClass(ClassLoader.java:425)
在java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 10个
我bild.sbt文件:
名称:=untitled12版本:=1.0scalaVersion:=2.10.4libraryDependencies ++ = SEQ(
org.postgresql%PostgreSQL的%9.2-1003-jdbc4
org.apache.spark%火花mllib_2.10%1.0.0
)解析器+ =阿卡库在http://repo.akka.io/releases/
和我的Java code
VAL类= SEQ(
的getClass,//为了得到我们自己的code中的罐子。
classOf [org.postgresql.Driver] //为了让连接器。
) VAL罐子= classes.map(_。getProtectionDomain()得到codeSource()的getLocation()。的getPath()) //设置环境
VAL的conf =新SparkConf()。setAppName(名称).setJars(罐)
//.setMaster(\"spark://192.168.10.122:7077)
VAL SC =新SparkContext(CONF)
下载 PostgreSQL驱动并把它添加到你的classpath。
I can`t run mt Spark app because java.lang.NoClassDefFoundError: org/postgresql/Driver
I did same like How can I connect to a postgreSQL database into Apache Spark using scala? but when I try to start my app I get this Exception.
Exception in thread "main" java.lang.NoClassDefFoundError: org/postgresql/Driver
at SparkRecommendationMatrix.<init>(SparkRecommendationMatrix.scala:31)
at Main$.main(Main.scala:26)
at Main.main(Main.scala)
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)
at org.apache.spark.deploy.SparkSubmit$.launch(SparkSubmit.scala:292)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:55)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: java.lang.ClassNotFoundException: org.postgresql.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 10 more
My bild.sbt file:
name := "untitled12"
version := "1.0"
scalaVersion := "2.10.4"
libraryDependencies ++= Seq(
"org.postgresql" % "postgresql" % "9.2-1003-jdbc4",
"org.apache.spark" % "spark-mllib_2.10" % "1.0.0"
)
resolvers += "Akka Repository" at "http://repo.akka.io/releases/"
and my java code
val classes = Seq(
getClass, // To get the jar with our own code.
classOf[org.postgresql.Driver] // To get the connector.
)
val jars = classes.map(_.getProtectionDomain().getCodeSource().getLocation().getPath())
// set up environment
val conf = new SparkConf().setAppName(name).setJars(jars)
//.setMaster("spark://192.168.10.122:7077")
val sc = new SparkContext(conf)
Download the postgresql Driver and add it to your classpath.
这篇关于不能老是运行,因为java.lang.NoClassDefFoundError的火花应用程序:组织/ PostgreSQL的/驱动器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!