Ist es notwendig, ein Funkenanwendungsglas einzureichen?

9

Wie bereits im Titel erwähnt, frage ich mich, ob es notwendig ist, * .jar zu funken ?.

Ich benutze Datastax Enterprise Cassandra für eine Weile, aber jetzt muss ich auch Spark verwenden. Ich habe fast alle Videos von DS320: DataStax Enterprise Analytics mit Apache Spark gesehen und es gibt nichts über das Verbinden von Java-Anwendung entfernt zu funken.

Jetzt habe ich 3 laufende Knoten von DSE. Ich kann eine Verbindung zu Spark von Spark Shell herstellen. Aber nachdem ich 2 Tage lang versucht habe, eine Verbindung zu Spark über Java-Code herzustellen, gebe ich auf.

Dies ist mein Java-Code

%Vor%

Ergebnis der Verbindung

%Vor%

Ich habe versucht, SPARK_MASTER_IP, SPARK_LOCAL_IP und viele andere Konfigurationsvariablen zu ändern, aber ohne Erfolg. Jetzt habe ich einige Artikel über die Einreichung von Gläsern bei Spark gefunden und bin mir nicht sicher (kann keinen Beweis finden), wenn es die Ursache ist? Sind Spark-submit und interaktive Shell die einzigen Möglichkeiten, Funken zu verwenden?

Irgendwelche Artikel darüber? Ich wäre dankbar, wenn Sie mir einen Tipp geben könnten.

    
Marcin Lagowski 19.01.2016, 12:09
quelle

2 Antworten

1

Ich würde sehr empfehlen, dse spark-submit mit dse zu verwenden. Obwohl dies nicht erforderlich ist, ist es wesentlich einfacher als sicherzustellen, dass die für DSE eingerichteten Sicherheits- und Klassenpfadoptionen mit Ihrem Cluster funktionieren. Es bietet auch einen viel einfacheren Ansatz (meiner Meinung nach) für die Konfiguration Ihrer SparkConf und die Platzierung von jars auf den Executor-Klassenpfaden.

Innerhalb von DSE wird Ihre Anwendung automatisch an die korrekte Spark-Master-URL weitergeleitet, was die Einrichtung weiter vereinfacht.

Wenn Sie wirklich Ihre SparkConf konstruieren möchten, sollten Sie sicherstellen, dass Sie Ihren Sparkmaster der Ausgabe von dsetool spark-master zuordnen oder in Ihrer Version von DSE gleichwertig sind.

    
RussS 20.01.2016, 01:18
quelle
0

Sie benötigen ein Jar, damit die Executoren Ihren benutzerdefinierten Code ausführen können. Sie können dieses Jar mit SparkConf.setJars setzen. Dies ist jedoch keine Voraussetzung für die Verbindung mit dem Spark-Master und das Einrichten einer Spark-Anwendung. Wer weiß, vielleicht möchten Sie keinen benutzerdefinierten Code ausführen. (Dies kann vernünftigerweise bei Spark SQL der Fall sein.)

Sie müssen auch spark-submit nicht verwenden.

Ich weiß nichts über DataStax, also könnte es alles Mögliche sein. Aber aus der Fehlermeldung sieht es aus, als ob Ihre Anwendung versucht, eine Verbindung mit dem falschen Host herzustellen, oder ein Netzwerkproblem vorliegt. Wenn Sie denselben Spark-Master von demselben Rechner mit spark-shell erreichen können, ist das natürlich nicht der Fall. Überprüfen Sie die Master-Protokolle, vielleicht kann es Ihnen sagen, warum es die Verbindung von Ihrer Anwendung schließt.

    
Daniel Darabos 19.01.2016 23:59
quelle