Ich arbeite daran, eine Reihe von VMs einzurichten, um mit Spark zu experimentieren, bevor ich Geld für den Aufbau eines Clusters mit Hardware ausgeben kann. Kurzer Hinweis: Ich bin ein Akademiker mit einem Hintergrund im angewandten maschinellen Lernen und arbeite ein bisschen in der Datenwissenschaft. Ich benutze die Tools zum Rechnen, selten müsste ich sie einrichten.
Ich habe 3 VMs (1 Master, 2 Slaves) erstellt und Spark erfolgreich installiert. Alles scheint so zu funktionieren, wie es sollte. Mein Problem besteht darin, einen Jupyter-Server zu erstellen, mit dem eine Verbindung über einen Browser hergestellt werden kann, der nicht auf einem Computer im Cluster ausgeführt wird.
Ich habe Jupyter Notebook erfolgreich installiert ... und es läuft. Ich habe ein neues IPython-Profil hinzugefügt, das mit Spark eine Verbindung zu einem Remote-Server herstellt .
jetzt das problem
Der Befehl
$ ipython --profile=pyspark
läuft gut und es verbindet sich mit dem Funkencluster. Jedoch,
$ ipython notebook --profile=pyspark
[<stuff is here>] Unrecognized alias: "profile=pyspark", it will probably have no effect.
Standardmäßig wird das default
Profil verwendet, nicht das pyspark
Profil.
Meine Notebook-Konfiguration für pyspark
hat:
c = get_config()
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8880
c.NotebookApp.server_extensions.append('ipyparallel.nbextension')
c.NotebookApp.password = u'some password is here'
$ ipython --profile=pyspark notebook
? Es könnte sein, dass das Problem nur in der Reihenfolge der Argumente lag.Antworten:
IPython ist jetzt auf Version 4.0 umgestiegen. Wenn Sie es verwenden, liest es die Konfiguration von
~/.jupyter
, nicht von~/.ipython
. Sie müssen eine neue Konfigurationsdatei mit erstellenund bearbeiten Sie dann die resultierende
~/.jupyter/jupyter_notebook_config.py
Datei gemäß Ihren Anforderungen.Weitere Installationsanweisungen finden Sie hier .
quelle
Angenommen, Ihre Konfigurationsdatei lautet ~ / .ipython / profile_pyspark / ipython_notebook_config.py. Sie können diese Konfigurationsdatei weiterhin verwenden, indem Sie:
oder
quelle
Das Problem ist, dass sich pyspark standardmäßig nicht auf dem Pfad von os sys befindet. Nach mehreren fehlgeschlagenen Versuchen, es manuell zu meinen Konfigurationsdateien / Pfaden / usw. hinzuzufügen, stieß ich auf dieses GitHub-Repository namens findspark.
https://github.com/minrk/findspark
Ich habe dieses Repository mit dem Git-Klon https://github.com/minrk/findspark.git geklont
Dann habe ich "pip install findspark" von der findspark-Wurzel ausgeführt.
Startete ein Jupyter-Notizbuch, erstellte ein neues Python3-Notizbuch und fügte hinzu
import findspark
import os
findspark.init ()
import pyspark
sc = pyspark.SparkContext ()
Vor findspark.init () kam import pyspark mit einem Fehler zurück.
Zum Testen habe ich einfach sc eingegeben und bin zurückgekommen:
pyspark.context.SparkContext at 0x4526d30
Alle arbeiten jetzt für mich.
quelle