Sto usandoNessun driver adatto trovato per JDBC in Spark
df.write.mode("append").jdbc("jdbc:mysql://ip:port/database", "table_name", properties)
ad inserire in una tabella in MySQL.
Inoltre, ho aggiunto Class.forName("com.mysql.jdbc.Driver")
nel mio codice.
Quando presento la mia candidatura 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
Questa modalità filo-client funziona per me.
Ma quando io uso la modalità filo-cluster:
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
E doens't lavoro. Ho anche provato a impostare "--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
ma ancora ottenere l'errore "Nessun driver adatto trovato per jdbc".
Ho aggiunto mysql-connector-java-5.1.38-bin.jar nel mio barattolo e ora non lo includo nel mio cli-spark-submit. Facendo questo, il filato-cliente funziona ancora, ma il filato non lo fa. –
puoi anche provare a configurare queste 2 variabili "spark.driver.extraClassPath" e "spark.executor.extraClassPath" nel file "SPARK_HOME/conf/spark-default.conf" e specificare il valore di queste variabili come il percorso del file jar. Assicurarsi che lo stesso percorso esista sui nodi worker. – Sumit
L'impostazione "spark.driver.extraClassPath" funziona per me, grazie. –