2017-12-01 1 views
0

Ich versuche, eine Tabelle aus meiner Oracle-Datenbank zu importieren Funken verwendet und hier ist Scala bin mit der Tabelle zu importieren. Mein JDBC-Treiber ist ojdbc7.jar und es ist sowohl in den Parametern spark.driver.extraClassPath und spark.executor.extraClassPath in der KonfigurationsdateiFunken Testamentsvollstrecker wirft Fehler „java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver“

spark.driver.extraClassPath :/usr/lib/hadoop-lzo/lib/*:/usr/lib/hadoop/hadoop-aws.jar:/usr/share/aws/aws-java-sdk/*:/usr/share/aws/emr/emrfs/conf:/usr/s hare/aws/emr/emrfs/lib/*:/usr/share/aws/emr/emrfs/auxlib/*:/usr/share/aws/emr/security/conf:/usr/share/aws/emr/security/lib/*:/home/hadoop/ojdbc7.jar spark.driver.extraLibraryPath /usr/lib/hadoop/lib/native:/usr/lib/hadoop-lzo/lib/native spark.executor.extraClassPath :/usr/lib/hadoop-lzo/lib/*:/usr/lib/hadoop/hadoop-aws.jar:/usr/share/aws/aws-java-sdk/*:/usr/share/aws/emr/emrfs/conf:/usr/s hare/aws/emr/emrfs/lib/*:/usr/share/aws/emr/emrfs/auxlib/*:/usr/share/aws/emr/security/conf:/usr/share/aws/emr/security/lib/*:/home/hadoop/ojdbc7.jar spark.executor.extraLibraryPath /usr/lib/hadoop/lib/native:/usr/lib/hadoop-lzo/lib/native

Ich kann erfolgreich die Tabelle importieren hinzugefügt. Ich kann das Schema der Tabelle drucken. Aber während alle Operationen wie Count durchgeführt wird, show() wirft sie unter Fehler

`

Verursacht durch: java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver bei java.lang.ClassLoader.findClass (ClassLoader.java:530) um org.apache.spark.util.ParentClassLoader.findClass (ParentClassLoader.scala: 26) bei java.lang.ClassLoader.loadClass (ClassLoader.java: 424) um org.apache.spark. util.ParentClassLoader.loadClass (ParentClassLoader.scala: 34) bei java.lang.ClassLoader.loadClass (ClassLoader.java:357) bei org.apache.spark.util.P arentClassLoader.loadClass (ParentClassLoader.scala: 30) bei org.apache.spark.repl.ExecutorClassLoader.findClass (ExecutorClassLoader.scala: 77) ... 21 weitere

`

+1

Ist /home/hadoop/ojdbc7.jar auf jeder Maschine lesbar, wenn der Benutzer den Executor jvms ausführt? Es sieht so aus, als ob nur der Fahrer die Klasse zur Verfügung hat. –

+0

Danke @RickMoritz, Platzieren des Glases in/usr/lib/spark/jars /. löste mein Problem –

+0

@SurajitKundu Könnten Sie Ihre Frage beantworten und für zukünftige Leser akzeptieren? –

Antwort

0

Dieser Fehler war, weil Spark die ojdbc7.jar nicht von jedem Kernknoten lokalisieren konnte. Wenn Sie dieses JAR an einem freigegebenen Speicherort wie/usr/lib/spark/jars platzieren, wird dieses Problem behoben.

Verwandte Themen