報錯日志如下:
意思是:沒有合適的驅動,
按道理來說,如果找不到Java的driver驅動應該會報錯為:class not found mysql.jdbc.driver 。
但是不知道為啥報錯這個。
解決方法:在腳本中添加--driver-class-path 指定mysql-connection jar包。 即可!!!
腳本如下
1 #!/bin/bash 2 3 source ~/.bash_profile 4 5 APP_HOME=/root/y 6 7 echo $APP_HOME 8 9 ################################# spark job ########################################### 10 11 for f in $APP_HOME/lib/*.jar; do 12 13 app_CLASSPATH=$f,${app_CLASSPATH} 14 15 done 16 17 len=${#app_CLASSPATH}-1 18 19 JAR_PATH=${app_CLASSPATH:0:len} 20 21 spark-submit --master yarn \ 22 --deploy-mode client \ 23 --num-executors 4 \ 24 --executor-cores 1 \ 25 --executor-memory 1g \ 26 --class com.pateo.x37.EcoDriving \ 27 --driver-memory 1g \ 28 --jars $JAR_PATH \ 29 --driver-class-path /root/y/lib/mysql-connector-java-5.1.6.jar \ 30 $APP_HOME/DFclout.jar 31 32 33 34 ###### 執行異常與否判斷 35 36 rc=$? 37 38 if [[ $rc != 0 ]]; then 39 40 echo "`date "+%Y-%m-%d %H:%M:%S"` Spark job run failed......" 41 42 exit 1 43 44 else 45 46 echo "`date "+%Y-%m-%d %H:%M:%S"` Spark job run successfully......." 47 48 fi
后續,查看spark-submit —help
意思為:
要傳遞給驅動程序的額外類路徑項。注意,用——jars添加的jar會自動包含在類路徑中。
但是在我的腳本中是有--jars的配置的,不知道為什么沒有指定到mysql 的連接驅動