Comment faire pour exécuter une étincelle exemple de programme dans Intellij IDEA
Premier sur la ligne de commande à partir de la racine de la téléchargé étincelle projet, j'ai couru
mvn package
Il a réussi.
Puis un intellij projet a été créé par l'importation de l'étincelle pom.xml.
Dans l'IDE l'exemple de la classe apparaît amende: toutes les bibliothèques sont trouvés. Vous pouvez le voir dans la capture d'écran.
Toutefois , lorsque vous tentez d'exécuter la méthode main() une ClassNotFoundException sur SparkContext se produit.
Pourquoi Intellij pas simplement de charger et d'exécuter ce maven base de scala programme? Et ce qui peut être fait comme une solution de contournement?
Comme on peut le voir ci-dessous, la SparkContext est à la recherche d'amende dans l'IDE: mais alors est introuvable lorsque vous tentez d'exécuter:
Le test a été exécuté par un clic droit à l'intérieur de main():
.. et en sélectionnant Exécuter GroupByTest
Il donne
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/SparkContext
at org.apache.spark.examples.GroupByTest$.main(GroupByTest.scala:36)
at org.apache.spark.examples.GroupByTest.main(GroupByTest.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: java.lang.ClassNotFoundException: org.apache.spark.SparkContext
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 7 more
Voici la configuration d'exécution:
OriginalL'auteur javadba | 2014-01-30
Vous devez vous connecter pour publier un commentaire.
Étincelle lib n'est pas votre class_path.
Exécuter
sbt/sbt assembly
,et après include "/assemblée/cible/scala-$SCALA_VERSION/spark-montage*hadoop*-deps.jar" à votre projet.
OK, donc qu'il a fait. Donc, apparemment, l'exécution de mvn package n'est pas suffisant
OriginalL'auteur Yuriy
Cela peut aider IntelliJ-Runtime-erreur-tt11383. Module de changement de dépendances de fournir à compiler. Cela fonctionne pour moi.
merci pour l'astuce. Il a travaillé pour moi.
OriginalL'auteur ray6080
Vous devez ajouter l'étincelle de la dépendance. Si vous utilisez maven juste ajouter ces lignes dans votre pom.xml:
De cette façon, vous aurez la dépendance de la compilation et à des fins de test, mais pas dans le "jar-with-dependencies" artefact.
Mais si vous voulez exécuter l'ensemble de l'application dans un autonome cluster en cours d'exécution dans votre ide, vous pouvez ajouter un profil maven pour ajouter la dépendance avec la compilation de la portée. Juste comme ça:
J'ai aussi ajouté une option à ma demande d'ouverture d'un cluster local si --local est passé:
Enfin, vous devez activer "local" profil à l'Ide, afin d'obtenir des dépendances. Il suffit d'aller à "des Projets Maven" et l'onglet pour activer le profil.
OriginalL'auteur delr3ves