我在用
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文件的路径.确保工作节点上存在相同的路径.
(编辑:通辽站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|