Jupyter-Notizbücher in einem Team teilen

22

Ich möchte einen Server einrichten, der ein Data-Science-Team auf folgende Weise unterstützen kann: ein zentraler Punkt für das Speichern, Versionsmanagement, das Teilen und möglicherweise auch das Ausführen von Jupyter-Notebooks.

Einige gewünschte Eigenschaften:

  1. Verschiedene Benutzer können auf den Server zugreifen und Notizbücher öffnen und ausführen, die von ihnen oder anderen Teammitgliedern gespeichert wurden. Die interessante Frage hier ist, wie sich der Benutzer X verhält, wenn er Zellen in einem von Benutzer Y erstellten Notizbuch ausführt. Ich denke, das Notizbuch sollte NICHT geändert werden:
  2. Die Lösung sollte selbst gehostet werden.
  3. Notizbücher sollten entweder auf dem Server oder auf dem Google-Laufwerk oder auf einer selbst gehosteten Instanz von owncloud gespeichert werden.
  4. (Bonus) Notebooks unterliegen der Versionskontrolle von Git (Git wird möglicherweise selbst gehostet. Kann nicht an GitHub oder ähnliches gebunden werden).

Ich schaute in JupyterHub und Binder . Mit dem ersteren habe ich nicht verstanden, wie man Cross-User-Zugriff zulässt. Letzteres scheint nur GitHub als Ablage der Notebooks zu unterstützen.

Haben Sie Erfahrung mit einer der Lösungen?

Dror Atariah
quelle
Kaggle hat ein System angekündigt, das genau Ihren Wünschen entspricht .
Ricardo Cruz
1
JupiterHub ist genau für diesen Vorschlag.
Dannyeuu
@dannyeuu Ich nehme an, du meintest JupyterHub, oder? Ist es möglich, dass Notebooks von mehreren Benutzern gemeinsam genutzt werden?
Dror Atariah
Nein, jeder Benutzer hat eine eigene Instanz von Jupyter. AFAIK Sie können nicht einfach Notebooks teilen.
Lukasz Tracewski
Google Colaboratory erfüllt definitiv die Anforderung 3.
Leponzo

Antworten:

2

Airbnb hat kürzlich sein internes Data-Science-Wissensrepository mit Open-Sourcing-Funktionen geöffnet: https://github.com/airbnb/knowledge-repo

Aus der Readme-Datei geht hervor, dass es möglicherweise zu Ihrem Anwendungsfall passt:

Das Knowledge Repository-Projekt konzentriert sich auf die Erleichterung des Wissensaustauschs zwischen Datenwissenschaftlern und anderen technischen Rollen unter Verwendung von Datenformaten und -werkzeugen, die in diesen Berufen sinnvoll sind. Es bietet verschiedene Datenspeicher (und Dienstprogramme für deren Verwaltung) für "Knowledge Posts", wobei der Schwerpunkt auf Notebooks (R Markdown und Jupyter / iPython Notebook) liegt, um die reproduzierbare Forschung besser zu fördern.

Es gibt auch einen Blog-Beitrag, der seine Motivation kommentiert.

ncasas
quelle
2

JupyterHub bietet kein Versionskontrollsystem und erleichtert auch nicht das Teilen von Notebooks. Sie haben die Beschränkung von Binder erwähnt.

Probieren Sie Zeppelin . Version 0.7 soll in wenigen Tagen veröffentlicht werden.

  • Wie Sie der Roadmap entnehmen können, bietet diese Version "Enterprise" -Funktionen, bei denen es genau um die Zusammenarbeit geht.
  • Versionskontrollsystem (Git) ist integriert.
  • Es ist selbst gehostet.

Im Wesentlichen denke ich, dass es alle Anforderungen erfüllt, die Sie veröffentlicht haben. Darüber hinaus bietet es umfangreichere Visualisierungsfunktionen und eine Vielzahl weiterer Funktionen (funktioniert mit Shiro, Knox, Kerberos - sicherer Spark für alle?).

Lukasz Tracewski
quelle
0

Die einzige selbst gehostete Lösung, die ich kenne, ist das kostenpflichtige Anaconda Enterprise-Cloud-Setup unter https://anaconda.org/about . Die anderen mir bekannten Lösungen können nicht selbst gehostet werden!

RHC
quelle
0

Ist diese Lösung nicht gut genug?

Sie können den Zugriff mit ssh schützen, und die gehosteten Dateien können das gewünschte Git-Repository mit unterschiedlichem Linux-Benutzerzugriff (oder was auch immer) sein. Sie benötigen einen eigenen Server.

Robin
quelle
0

Was ich gefunden habe - das Teilen von Notizbüchern für Datenwissenschaftler ist kein wünschenswertes Format für die Kommunikation. Viele von ihnen bevorzugen IDE wie Spider / RStudio oder nur einen Texteditor (ich kenne ein paar Datenwissenschaftler, die das benutzen vi).

Sie können Code von Ihrer Quellcodeverwaltung und Daten von Cloud-Speichern freigeben. Es erhöht die Flexibilität.

Ich habe vor kurzem ein Tool mit Open-Source-Funktion entwickelt, das Code, Daten und die Abhängigkeiten zwischen Daten und Code in einer einzigen Umgebung kombiniert und Ihr Data-Science-Projekt reproduzierbar macht: DVC oder dataversioncontrol.com (es gibt ein Lernprogramm).

Mit dem DVC-Tool können Sie Ihr Projekt einfach über Git freigeben und Daten mit einem einzigen DVC-Befehl mit S3 synchronisieren. Wenn sich einige Ihrer Datenwissenschaftler dazu entschließen, den Code in einer Phase Ihres Projekts zu ändern, kann das Endergebnis problemlos mit einem einzigen Befehl reproduziert werden dvc repro data/target_metrics.txt.

Dmitry Petrov
quelle
0

Domino Data Lab bietet Hosting für lokale, SaaS- und VPC-basierte Notebooks (Jupyter, Zeppelin, RStudio), Git-Integration, skalierbares Computing, Umgebungsvorlagen und eine Reihe weiterer nützlicher Dinge. Die Räumlichkeiten / VPC-Angebote sind vielleicht übertrieben und zu teuer, wenn Sie ein kleines Team sind, aber die SaaS-Pläne sind recht günstig.

[Vollständige Offenlegung: Ich bin ein ehemaliger Domino-Mitarbeiter]

Danielchalef
quelle