2017-11-06 3 views
0
  1. Wie viele Möglichkeiten gibt es Spark zu laufen? Wenn ich nur Abhängigkeiten in build.sbt deklariere, soll Spark heruntergeladen werden und funktioniert? Aber wenn ich Spark lokal ausführen möchte (download die Spark-tar-Datei, Winutils ...), wie kann ich in Scala-Code angeben, dass ich meinen Code gegen den lokalen Spark und nicht gegen die Abhängigkeiten im IntelliJ heruntergeladen ausführen möchte?scala funken cassandra installation

  2. Um Spark mit Cassandra zu verbinden, benötige ich eine lokale Installation von Spark? Ich habe irgendwo gelesen, es ist nicht möglich, von einem „programmatisch“ Funken zu einer lokalen Cassandra Datenbank

+0

Sie Ihre lokale sbt in IntelliJ auswählen können. Sie können Ihren eigenen Funkencluster mit auswählen. In Spark verwenden Sie seinen Cassandra-Connector, um sich mit Ihrem Cassandra-Cluster zu verbinden, er kann lokal sein. –

Antwort

0

1) Spark in eine etwas seltsamen Art und Weise laufen zu verbinden, gibt es Ihre Anwendung (die Spark-Treiber und Testamentsvollstrecker) und es gibt der Ressourcenmanager (Spark Master/Workers, Yarn, Mesos oder Local).

In Ihrem Code können Sie gegen den In-Process-Manager (lokal) ausführen, indem Sie den Master als local oder local[n] angeben. Der lokale Modus erfordert keine Installation von Spark, da er automatisch in dem Prozess eingerichtet wird, den Sie ausführen. Dies würde die Abhängigkeiten verwenden, die Sie heruntergeladen haben.

Um gegen einen Spark-Master zu laufen, der lokal ausgeführt wird, verwenden Sie eine spark://-URL, die auf Ihre bestimmte lokale Spark-Master-Instanz zeigt. Beachten Sie, dass dies dazu führt, dass der Executor JVMS getrennt von Ihrer Anwendung gestartet wird, wodurch die Verteilung von Anwendungscode und Abhängigkeiten erforderlich wird. (Andere Ressourcenmanager haben eigene Identifizierungs-URLs.)

2) Sie benötigen keinen "Resource Manager", um eine Verbindung zu C * von Spark herzustellen, aber diese Fähigkeit dient hauptsächlich zum Debuggen und Testen. Um dies zu tun, würden Sie die Master-URL local verwenden. Die Verwendung von Normal Spark sollte einen externen Ressourcenmanager haben, da ohne einen externen Ressourcenmanager das System nicht verteilt werden kann.

Für einige mehr Funken Cassandra Beispiele siehe

https://github.com/datastax/SparkBuildExamples

+1

Danke. So gegen den Prozess-Manager ausgeführt werden: 'SparkConf.setMaster ("local [*]")' gegen die SparkMaster auszuführen: 'SparkConf.setMaster ("Funken: //")' Und in beiden Fällen zu Verbindung zu einer externen Cassandra-Datenbank: '.set (" spark.casandra.connection.host "," localhost ")' – rodbs

+0

Das wird es tun. – RussS