Cloudera Manager_java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

实验环境

Cloudera manager6.3;

相关报错

笔者使用Cloudera Manager6.3来进行管理,当打开spark-shell交互式终端,读取mysql数据库中的数据时出现如下报错:

scala> val jdbcDF = spark.read.format("jdbc").option("url", "jdbc:mysqll://hadoop210:3306/rdd").option("driver", "com.mysql.jdbc.Driver").option("dbtable", "t").option("user", "root").option("password", "000000").load() 
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
  at scala.reflect.internal.util.AbstractFileClassLoader.findClass(AbstractFileClassLoader.scala:62)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
  at org.apache.spark.sql.execution.datasources.jdbc.DriverRegistry$.register(DriverRegistry.scala:45)
  at org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions$$anonfun$5.apply(JDBCOptions.scala:99)
  at org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions$$anonfun$5.apply(JDBCOptions.scala:99)
  at scala.Option.foreach(Option.scala:257)
  at org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions.<init>(JDBCOptions.scala:99)
  at org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions.<init>(JDBCOptions.scala:35)
  at org.apache.spark.sql.execution.datasources.jdbc.JdbcRelationProvider.createRelation(JdbcRelationProvider.scala:32)
  at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:317)
  at org.apache.spark.sql.DataFrameReader.loadV1Source(DataFrameReader.scala:223)
  at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:211)
  at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:167)
  ... 49 elided

错误分析

根据错误提示,很容易看出是缺少Mysql驱动,于是!我们只需下载mysql-connector-java-5.1.26-bin.jar下载地址)将其放到spark的类路径下(若是采用独立模式和本地模式,则相应的目录为 …/spark/jar)即可。

但是若是Cloudera Manger来管理,那么该如何做呢?

方法是一样的,只是目录变了,找到/opt/cloudera/parcels/CDH-6.3.0-1.cdh6.3.0.p0.1279813/jars,在命令行将mysql-connector-java-5.1.26-bin.jar复制过来。

sudo cp ./mysql-connector-java.jar /opt/cloudera/parcels/CDH-6.3.0-1.cdh6.3.0.p0.1279813/lib/spark/jars

下来重新开启终端,便可以读取mysql中的数据了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值