mysql – 在Spark中找不到合适的jdbc驱动程序

前端之家收集整理的这篇文章主要介绍了mysql – 在Spark中找不到合适的jdbc驱动程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我在用

df.write.mode("append").jdbc("jdbc:MysqL://ip:port/database","table_name",properties)

插入MysqL中的表.

另外,我在我的代码添加了Class.forName(“com.MysqL.jdbc.Driver”).

当我提交我的Spark应用程序时:

spark-submit --class MY_MAIN_CLASS
  --master yarn-client
  --jars /path/to/MysqL-connector-java-5.0.8-bin.jar
  --driver-class-path /path/to/MysqL-connector-java-5.0.8-bin.jar
  MY_APPLICATION.jar

这种纱线客户端模式适合我.

但是当我使用纱线群集模式时:

spark-submit --class MY_MAIN_CLASS
  --master yarn-cluster
  --jars /path/to/MysqL-connector-java-5.0.8-bin.jar
  --driver-class-path /path/to/MysqL-connector-java-5.0.8-bin.jar
  MY_APPLICATION.jar

它不起作用.我也试过设置“–conf”:

spark-submit --class MY_MAIN_CLASS
  --master yarn-cluster
  --jars /path/to/MysqL-connector-java-5.0.8-bin.jar
  --driver-class-path /path/to/MysqL-connector-java-5.0.8-bin.jar
  --conf spark.executor.extraClassPath=/path/to/MysqL-connector-java-5.0.8-bin.jar
  MY_APPLICATION.jar

但仍然得到“找不到适合jdbc的驱动程序”错误.

最佳答案
有3种可能的解决方案,

>您可能希望使用构建管理器(Maven,SBT)组装应用程序,因此您无需在spark-submit cli中添加依赖项.
>您可以在spark-submit cli中使用以下选项:

--jars $(echo ./lib/*.jar | tr ' ' ',')

说明:假设您的所有jar都在项目根目录的lib目录中,这将读取所有库并将它们添加到应用程序提交.
>您还可以尝试在SPARK_HOME / conf / spark-default.conf文件中配置这两个变量:spark.driver.extraClassPath和spark.executor.extraClassPath,并将这些变量的值指定为jar文件的路径.确保工作节点上存在相同的路径.

猜你在找的MySQL相关文章