L'exécution de Spark Application à partir d'Eclipse.
Je suis en train de développer une application spark sur Eclipse, et ensuite le débogage en marchant à travers elle.
J'ai téléchargé l'Étincelle code source et j'ai ajouté un peu de l'étincelle des sous-projets(comme la spark-core) pour Eclipse. Maintenant, je suis en train de développer une étincelle de l'application à l'aide d'Eclipse. J'ai déjà installé le ScalaIDE sur Eclipse. J'ai créé une application simple basé sur l'exemple donné dans l'Étincelle site web.
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
object SimpleApp {
def main(args: Array[String]) {
val logFile = "YOUR_SPARK_HOME/README.md" //Should be some file on your system
val conf = new SparkConf().setAppName("Simple Application")
val sc = new SparkContext(conf)
val logData = sc.textFile(logFile, 2).cache()
val numAs = logData.filter(line => line.contains("a")).count()
val numBs = logData.filter(line => line.contains("b")).count()
println("Lines with a: %s, Lines with b: %s".format(numAs, numBs))
}
}
À mon projet, j'ai ajouté le spark-core
projet comme un projet dépendant(clic droit -> build path -> ajouter un projet). Maintenant, je suis en train de construire mon application et l'exécuter. Cependant, mon projet montre qu'il a des erreurs, mais je ne vois pas d'erreurs répertoriées dans la vue des problèmes au sein d'Eclipse, je ne vois toutes les lignes surlignées en rouge. Donc, je ne suis pas sûr que le problème est. Mon hypothèse est que j'ai besoin d'ajouter des pots pour mon projet, mais je ne suis pas sûr de ce que ces jarres serait. L'erreur est provoquée par val conf = new SparkConf().setAppName("Simple Application")
et les lignes suivantes. J'ai essayé de la suppression de ces lignes, et l'erreur a disparu. Je vous serais reconnaissant de toute l'aide et les conseils, merci!
OriginalL'auteur AndroidDev93 | 2015-03-28
Vous devez vous connecter pour publier un commentaire.
Il semble que vous n'êtes pas à l'aide de n'importe quel paquet/gestionnaire de bibliothèque (par exemple, sbt, maven) qui devrait éliminer la plupart des problèmes de gestion des versions. , Il peut être difficile de régler la bonne version de java, scala, étincelle et toutes ses dépendances sur votre propre.
Je recommande fortement de changer votre de votre projet Maven:
Convertir Projet Eclipse de Projet Maven
Personnellement, j'ai de très bonnes expériences avec sbt sur IntelliJ IDEA (https://confluence.jetbrains.com/display/IntelliJIDEA/Getting+Débuté+avec+SBT) qui est facile à installer et à entretenir.
OriginalL'auteur xhudik
Je viens de créer un archetype Maven pour Spark, l'autre jour.
Il met en place une nouvelle Étincelle 1.3.0 projet dans Eclipse/Idée avec Scala 2.10.4.
Il suffit de suivre les instructions ici.
Vous aurez juste à changer la Scala version après que le projet est généré à:
Clic droit sur le projet et sélectionnez:
Scala > Set the Scala Installation > Fixed 2.10.5.(bundled)
La version par défaut qui vient avec ScalaIDE (actuellement
2.11.6
) est automatiquement ajouté au projet par ScalaIDE lorsqu'il détectescala-maven-plugin
dans le pom.J'apprécierais un retour, si quelqu'un sait comment régler le Scala bibliothèque contenant version de Maven, alors qu'il amorce un nouveau projet. D'où vient le ScalaIDE regardez en haut de la Scala version, si n'importe où?
BTW, assurez-vous de télécharger les sources (
Project right-click > Maven > Download sources
) avant d'entrer dans l'Étincelle de code dans le débogueur.Si vous souhaitez utiliser (à mon humble avis la meilleure) Eclipse goodies (Références, le Type de hiérarchie, hiérarchie d'Appels), vous devrez construire des Étincelles, de sorte que toutes les sources sont sur votre chemin de génération (comme Maven Scala dépendances ne sont pas traitées par EclipseIDE/JDT, même si elles sont, bien sûr, sur le chemin de génération).
Ont le plaisir de débogage, je peux vous dire que ça m'a énormément aidé à obtenir plus profondément dans l'Étincelle et de vraiment comprendre comment il fonctionne 🙂
OriginalL'auteur Marko Bonaci
Vous pourriez essayer d'ajouter le
spark-assembly.jar
à la place.Comme d'autres l'ont noté, la meilleure façon est d'utiliser Sbt (ou Maven pour gérer vos dépendances.
spark-core
a de nombreux elle-même les dépendances, et en ajoutant que le pot ne sera pas assez.OriginalL'auteur Iulian Dragos
Vous n'avez pas spécifié le maître en vous l'étincelle de code. Puisque vous êtes en cours d'exécution sur votre ordinateur local. Remplacer la ligne suivante
avec
Ici "local[2]" signifie 2 filets seront utilisés.
OriginalL'auteur Prashant Bhardwaj