2017-05-15 3 views
1

J'essaie de lancer mon application spark sur un shell. Voici ce que j'ai essayé et bien d'autres variantes après des heures de lecture sur cette erreur ... mais aucune ne semble fonctionner.spark-shell, jarres de dépendances et classe non trouvée

spark-shell --class my_home.myhome.RecommendMatch —jars /Users/anon/Documents/Works/sparkworkspace/myhome/target/myhome-0.0.1-SNAPSHOT.jar,/Users/anon/Documents/Works/sparkworkspace/myhome/target/original-myhome-0.0.1-SNAPSHOT.jar 

Quelle est la place est

obtenir
java.lang.ClassNotFoundException: my_home.myhome.RecommendMatch 
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:348) 
at org.apache.spark.util.Utils$.classForName(Utils.scala:229) 
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:695) 
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:187) 
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:212) 
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:126) 
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) 

Toutes les idées s'il vous plaît? Merci!

MISE À JOUR: Constaté que les pots doivent être deux points (:) séparés et non virgule (,) séparés comme décrit dans plusieurs articles/docs

spark-shell --class my_home.myhome.RecommendMatch —jars /Users/anon/Documents/Works/sparkworkspace/myhome/target/myhome-0.0.1-SNAPSHOT.jar:/Users/anon/Documents/Works/sparkworkspace/myhome/target/original-myhome-0.0.1-SNAPSHOT.jar 

Cependant, maintenant les erreurs ont changé. Note ls -la trouve les chemins bien que les lignes suivantes se plaignent de ne pas quitter. Bizarre ..

Warning: Local jar /Users/anon/Documents/Works/sparkworkspace/myhome/target/myhome-0.0.1-SNAPSHOT.jar:/Users/anon/Documents/Works/sparkworkspace/myhome/target/original-myhome-0.0.1-SNAPSHOT.jar does not exist, skipping. 
Setting default log level to "WARN". 
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel). 
java.lang.SecurityException: Invalid signature file digest for Manifest main attributes 
at sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:314) 
at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:268) 

MISE À JOUR 2:

spark-shell —class my_home.myhome.RecommendMatch —-jars “/Users/anon/Documents/Works/sparkworkspace/myhome/target/myhome-0.0.1-SNAPSHOT.jar:/Users/anon/Documents/Works/sparkworkspace/myhome/target/original-myhome-0.0.1-SNAPSHOT.jar” 

La commande ci-dessus donne ce qui suit sur étincelle shell.

Setting default log level to "WARN". 
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel). 
17/05/16 01:19:08 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 
17/05/16 01:19:13 WARN ObjectStore: Failed to get database global_temp, returning NoSuchObjectException 
Spark context Web UI available at http://192.168.0.101:4040 
Spark context available as 'sc' (master = local[*], app id = local-1494877749685). 
Spark session available as 'spark'. 
Welcome to 
     ____    __ 
    /__/__ ___ _____/ /__ 
    _\ \/ _ \/ _ `/ __/ '_/ 
    /___/ .__/\_,_/_/ /_/\_\ version 2.1.0 
     /_/ 

Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_121) 
Type in expressions to have them evaluated. 
Type :help for more information. 

scala> :load my_home.myhome.RecommendMatch 
That file does not exist 

scala> :load RecommendMatch 
That file does not exist 

scala> :load my_home.myhome.RecommendMatch.scala 
That file does not exist 

scala> :load RecommendMatch.scala 
That file does not exist 

Les bocaux ne semblent pas à charger :(basé sur ce que je vois à http://localhost:4040/environment/

Répondre

0

Les URL fournies à --jars doivent être séparés par des virgules. Votre première commande est correcte.

Vous devez également ajouter le pot enfin à étincelles param soumettre. Disons que my_home.myhome.RecommendMatch fait partie du fichier jar mon_dossier-0.0.1-SNAPSHOT.jar.

spark-submit --class my_home.myhome.RecommendMatch \ 
—jars "/Users/anon/Documents/Works/sparkworkspace/myhome/target/original-myhome-0.0.1-SNAPSHOT.jar" \ 
/Users/anon/Documents/Works/sparkworkspace/myhome/target/myhome-0.0.1-SNAPSHOT.jar