【发布时间】:2017-05-05 15:53:27
【问题描述】:
我正在尝试将 Spark 连接到 MariaDB,我得到了
线程“main”中的异常 java.lang.ClassNotFoundException: org.mariadb.jdbc.Driver
现在在您将其标记为重复之前,我知道错误的含义,并且我已经阅读了不同的线程但没有成功。
这是我的build.sbt
scalaVersion := "2.11.8"
name := "SparkJdbc"
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "2.0.2",
"org.apache.spark" %% "spark-sql" % "2.0.2",
"org.mariadb.jdbc" % "mariadb-java-client" % "1.5.2"
)
我也有单独的罐子,我试过了
spark-submit --class SparkJdbc target/scala-2.11/sparkjdbc_2.11-0.1-SNAPSHOT.jar
--jars /path/to/mariadb-java-client-1.5.2.jar
但这也因同样的错误而失败。
以下是我用来连接的代码
val (driver, url, username, password) = ("org.mariadb.jdbc.Driver", "jdbc:mysql://localhost/db1", "user", "password");
Class.forName(driver).newInstance;
val data = spark.sqlContext.read
.format("jdbc")
.option("url", url)
.option("user", username)
.option("password", password)
.option("dbtable", "SELECT * FROM db1.football LIMIT 10")
.load();
【问题讨论】:
-
/path/to/mariadb-java-client-1.5.2.jar你能说得更具体一点吗?您是否只是提供了本地到驱动程序的文件路径,或者在它前面加上了一些东西? (local、http等)。如果你让日志记录更详细一点,你能看到 Spark 加载 mariadb jars 吗? -
@TheArchetypalPaul 我正在使用
--jars命令行参数为驱动程序提供本地文件路径。 -
那么您能在驱动程序日志中看到它找到并加载了 jar 吗?
-
@TheArchetypalPaul 我在将
rootCategory设置为ALL时得到了这个信息“INFO SparkContext:添加了 JAR 文件:/~/Downloads/mariadb-java-client-1.5.2.jar在 spark://ip:port/jars/mariadb-java-client-1.5.2.jar 时间戳为 1482248249212"
标签: java scala apache-spark sbt apache-spark-sql