Spark版本:2.2.0_2.11
我們在項目中通過Spark SQL JDBC連接MySQL,在啟動Driver/Executor執行的時候都碰到了這個問題。網上解決方案我們全部都試過了,奉上我們自己驗證通過的方案:
1、在spark2-submit中指定好如下配置(我們使用的是mysql-connector-java-5.1.38.jar):
- --driver-class-path /local/to/path/mysql-connector-java-5.1.38.jar
2、在每台DataNode上,按上述路徑“/local/to/path/mysql-connector-java-5.1.38.jar”,原樣搞一份相同路徑和jar包拷貝。比如有datanode1,datanode2,datanode3這幾台DataNode,則在datanode1,2,3上都新建/local/to/path/,然后拷貝mysql-connector-java-5.1.38.jar並放在該路徑下,即可。
3、保證上述1,2配置正確,則不需要在options中增加“driver”的配置項;
4、保證上述1,2配置正確,則不需要在spark2-submit中增加“spark.driver.extraClassPath和spark.executor.extraClassPath”配置項。
至於2為什么要這么玩,我還沒有深入研究過,大家有答案可以回復下,感激~
