记一次--------spark 读 mysql 报错no suitable driver
报错日志如下:
意思是:没有合适的驱动,
按道理来说,如果找不到Java的driver驱动应该会报错为:class not found mysql.jdbc.driver 。
但是不知道为啥报错这个。
解决方法:在脚本中添加--driver-class-path 指定mysql-connection jar包。 即可!!!
脚本如下
#!/bin/bash source ~/.bash_profile APP_HOME=/root/y echo $APP_HOME ################################# spark job ########################################### for f in $APP_HOME/lib/*.jar; do app_CLASSPATH=$f,${app_CLASSPATH} done len=${#app_CLASSPATH}-1 JAR_PATH=${app_CLASSPATH:0:len} spark-submit --master yarn \ --deploy-mode client \ --num-executors 4 \ --executor-cores 1 \ --executor-memory 1g \ --class com.pateo.x37.EcoDriving \ --driver-memory 1g \ --jars $JAR_PATH \ --driver-class-path /root/y/lib/mysql-connector-java-5.1.6.jar \ $APP_HOME/DFclout.jar ###### 执行异常与否判断 rc=$? if [[ $rc != 0 ]]; then echo "`date "+%Y-%m-%d %H:%M:%S"` Spark job run failed......" exit 1 else echo "`date "+%Y-%m-%d %H:%M:%S"` Spark job run successfully......." fi
后续,查看spark-submit —help
意思为:要传递给驱动程序的额外类路径项。注意,用——jars添加的jar会自动包含在类路径中。
但是在我的脚本中是有--jars的配置的,不知道为什么没有指定到mysql 的连接驱动
作者:于二黑
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。