Problem mit IPython / Jupyter unter Spark (nicht erkannter Alias)


11

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 defaultProfil verwendet, nicht das pysparkProfil.

Meine Notebook-Konfiguration für pysparkhat:

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'


Könnte es sein, dass das Folgende funktionieren würde? $ ipython --profile=pyspark notebook? Es könnte sein, dass das Problem nur in der Reihenfolge der Argumente lag.
Gábor Bakos

Antworten:


12

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 erstellen

jupyter notebook --generate-config

und bearbeiten Sie dann die resultierende ~/.jupyter/jupyter_notebook_config.pyDatei gemäß Ihren Anforderungen.

Weitere Installationsanweisungen finden Sie hier .


Ich habe mich oft gefragt, warum sie den Befehl ipython notebook beibehalten haben, um jupyter von ipython zu trennen. Genau deshalb wird es wirklich verwirrend. Vielen Dank an Sie und kau zsh für den Hinweis auf die Nichtübereinstimmung des Profils. Es ist fast so, als ob sie das ipython-Profil verwenden sollten, wenn sie den Befehl ipython notebook verwenden, und das jupyter-notebook-Profil, wenn sie diesen Befehl verwenden.
AN6U5

4

Angenommen, Ihre Konfigurationsdatei lautet ~ / .ipython / profile_pyspark / ipython_notebook_config.py. Sie können diese Konfigurationsdatei weiterhin verwenden, indem Sie:

ipython notebook --config='~/.ipython/profile_pyspark/ipython_notebook_config.py'

oder

jupyter-notebook --config='~/.ipython/profile_pyspark/ipython_notebook_config.py'

1

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.


Willkommen auf der Website Anahita :)
Dawny33
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.