最近接到一个spark离线任务的需求,根据oracle关系数据库中配置表配置的信息。用hive查询大数据平台中的数据并将其同步至oracle一张指定的表中。
本地环境运行正常,在测试环境spark集群上运行时缺迟迟无法启动报java.sql.SQLException: No suitable driver。错误很明显是没有找到合适的驱动,于是按照以前的思维立马去查看代码中引用的包。依赖中是有oracle jdbc驱动的。然后又去查看了已经打好的包,发现里面也有驱动包!这就纳闷了,驱动都在为什么会报找不到合适的驱动呢?
解决办法:
方法1:运行时指定jdbc路径,这个路径是spark集群目录下的路径
--jars /path/to/ojdbc6.jar
--driver-class-path /path/to/ojdbc6.jar
方法2:配置conf/spark-env.sh文件中SPARK_CLASSPATH属性来设置driver的环境变量,这种方法需要修改配置文件,不如方法1方便。