项目之前用cloudera manager配好了spark on yarn集群,要求连接JDBC,markdown一下

既然是要jdbc连接mysql,必然少不了jar包,下载好jar包:mysql-connector-java-5.1.41-bin.jar

位置随大家喜欢,我放到了spark下的lib路径:/opt/cloudera/parcels/CDH-5.12.1-1.cdh5.12.1.p0.3/lib/spark/lib/mysql-connector-java-5.1.41-bin.jar(记好jar包的路径)

首先,打开pyspark,尝试连接mysql数据库,因为JDBC没有配置好,所以找不到class

Spark连接JDBC

OK,接下来去到spark的环境配置文件 (路径看自己的机器):

Eg:/opt/cloudera/parcels/CDH-5.12.1-1.cdh5.12.1.p0.3/lib/spark/conf/spark-defaults.conf

或者是 /etc/spark/conf/spark-defaults.conf

关键是要配置spark-defaults.conf 文件,不要配spark-env.sh

然后,加入之前jar包的路径:

spark.driver.extraClassPath=/opt/cloudera/parcels/CDH-5.12.1-1.cdh5.12.1.p0.3/lib/spark/lib/mysql-connector-java-5.1.41-bin.jar

Spark连接JDBC

OK!就是这么简单!

此处有一大坑,记得要按照顺序写配置,之前把spark.driver.extraClassPath写在了spark.driver.extraLibraryPath的前面,结果还是读取不了jar包,按照图中顺序就ok了,应该就是先加载额外库的路径,然后再加载额外类的路径(心累)

进入pyspark,尝试重新连接MySql

 

后期发现一篇好文:https://blog.csdn.net/pengzonglu7292/article/details/79517051

相关文章: