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:
- 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:
- Die Lösung sollte selbst gehostet werden.
- Notizbücher sollten entweder auf dem Server oder auf dem Google-Laufwerk oder auf einer selbst gehosteten Instanz von owncloud gespeichert werden.
- (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?
software-recommendation
Dror Atariah
quelle
quelle
Antworten:
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:
Es gibt auch einen Blog-Beitrag, der seine Motivation kommentiert.
quelle
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.
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?).
quelle
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!
quelle
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.
quelle
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
.quelle
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]
quelle