Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
de:services:application_services:jupyter:start [2019/10/07 14:55] – bwegman1 | de:services:application_services:jupyter:start [2023/03/31 18:02] – [Starten eines Notebooks] bwegman1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Jupyter / JupyterHub ====== | ||
+ | Die GWDG bietet [[https:// | ||
+ | |||
+ | ===== Nutzungsvoraussetzungen ===== | ||
+ | Jeder Nutzer mit einem gültigen [[de: | ||
+ | |||
+ | ===== Für wen ist der Dienst geeignet? ===== | ||
+ | |||
+ | Dieser Dienst richtet sich besonders an Benutzer*innen in der Lehre zur Verwendung in Kursen, Seminaren etc. und an einzelne Benutzer*innen, | ||
+ | |||
+ | Für größere Einsätze, in denen mit großen Datensätzen, | ||
+ | |||
+ | ===== Was ist Jupyter / Jupyter-Hub? | ||
+ | |||
+ | Juyter bietet die Möglichkeit im Browser interaktiv mit Python, Julia oder R zu arbeiten. Quellcode kann dabei in einem Editor im Browser eingegeben, ausgeführt und überarbeitet werden. Diese Schritte passieren in einem s.g. " | ||
+ | |||
+ | Jupyter-Hub ist das Portal, an dem sich Benutzer*innen anmelden, wo laufende Notebooks verwaltet oder neue gestartet werden. | ||
+ | |||
+ | Bitte beachten Sie, dass Jupyter auch auf dem [[https:// | ||
+ | ===== Wie wird Jupyter / Jupyter-Hub verwendet? ===== | ||
+ | |||
+ | ==== Voraussetzungen ==== | ||
+ | |||
+ | Da Speicherung und Berechnung serverseitig passieren, muss keine Software installiert oder weitere Voraussetzungen erfüllt sein. Es muss lediglich ein moderner Browser zur Verfügung stehen. Für die Anmeldung an dem Dienst wird ein [[de: | ||
+ | |||
+ | ==== Notebook-Image auswählen ==== | ||
+ | |||
+ | <WRAP tip> | ||
+ | Diese Funktion steht nach einem Update zur Verfügung, welches für den 06.04. geplant ist. | ||
+ | </ | ||
+ | |||
+ | Nach erfolgreicher Anmeldung erscheint eine Option zum Auswählen des Notebook-Images, | ||
+ | * GWDG default image (based on jupyter/ | ||
+ | * Dies war bisher und ist das Standard-Image. | ||
+ | * Python Stack w/ TensorFlow (jupyter/ | ||
+ | * Python and R Spark Jupyter Notebook (jupyter/ | ||
+ | * Data Science Jupyter Notebook (jupyter/ | ||
+ | |||
+ | Das Notebook-Image stellt die Umgebung des Notebook-Server zur Verfügung, insbesondere die vorinstallierte Software. | ||
+ | Obwohl das GWDG default image stark erweitert ist und auf dem regulären Data Science Notebook des Jupter-Projekts basiert, ist ein Image des Jupyter-Projekts möglicherweise in einigen Fälle besser geeignet als einfachere oder spezialisierte Umgebung. | ||
+ | |||
+ | Ungeachtet des ausgewählten Images bleibt das Heimatverzeichnis des Benutzer und die Daten darin unverändert und stehen immer zur Verfügung. | ||
+ | |||
+ | Das Notebook-Image kann nur geändert werden, wenn der Notebook-Server gestoppt ist und neu gestartet wird. Der Notebook-Server beendet sich nicht durch Abmeldung oder Schließen des Browsers, allerdings tritt dann nach einer Weile ein Timeout ein, der den Server beendet. Der Server kann aber direkt beendet werden über das Menü File -> Hub Control Panel -> "Stop my server" | ||
+ | |||
+ | ==== Starten eines Notebooks ==== | ||
+ | |||
+ | Nach erfolgreicher Anmeldung kann auf der Übersichtsseite über das Dropdown-Menü oben links unter "File - New" ein neues Notebook gestartet werden. Früher genutzte oder bereits gestartete Notebooks und ihre zugehörigen Dateien finden sich in der Liste linkerhand. | ||
+ | |||
+ | Detaillierte Informationen zur Benutzeroberfläche: | ||
+ | |||
+ | |||
+ | ==== Beenden und Verwalten von Notebooks ==== | ||
+ | |||
+ | Ein aktives Notebook kann über das Menü "File - Close and shutdown notebook" | ||
+ | |||
+ | Gelöscht wird das Notebook durch Rechtsklick " | ||
+ | |||
+ | ===== Benutzung ===== | ||
+ | |||
+ | * ⚠ **Bitte beachten Sie**, dass alle Verzeichnisse außer dem Home-Verzeichnis flüchtig sind und beim Schließen des Notebook-Servers verloren gehen. | ||
+ | * Pro Benutzer*in ist eine Quota von maximal 50 GB Speicher und 10 GB RAM festgelegt. | ||
+ | * jupyter-cloud.gwdg.de ist nicht für kontinuierliche Berechnungen über mehrere Tage geeignet. | ||
+ | |||
+ | ==== Notebook startet nicht mehr / Kernel verbindet sich nicht nach Paketinstallation oder Update ==== | ||
+ | Sollte nach einem Upgrade von Paketen / Installation neuer Pakete / Installation eines neuen Kernel kein Notebook mehr startbar sein, bzw. der Kernel verbindet sich nicht mehr, kann es helfen den Ordner ' | ||
+ | * File - New - Terminal | ||
+ | * <code bash> mv -v .local/ .local.gwdg-disable </ | ||
+ | * Anschließend Notebook Server neustarten über: File - Hub Control Panel - Stop My Server | ||
+ | ==== Installation zusätzlicher Python Module ==== | ||
+ | Zusätzliche Python Module können über das Terminal und den Python package manager " | ||
+ | |||
+ | === Installation von größeren Python Modulen und Disk Space === | ||
+ | |||
+ | Die Installation von größeren Python Modulen wie z.B. " | ||
+ | |||
+ | <code bash> | ||
+ | mkdir -v ~/ | ||
+ | TEMP=~/ | ||
+ | </ | ||
+ | |||
+ | Der Präfix mit TEMP lässt pip diesen Ort für dieses eine Installation für temporäre Daten verwenden. | ||
+ | |||
+ | |||
+ | <WRAP tip> | ||
+ | **mamba** ist eine alternative Implementierung des **conda** Paketmanagers. Sie sind austauschbar, | ||
+ | https:// | ||
+ | </ | ||
+ | |||
+ | ==== Installation zusätzlicher Pakete per Conda/Mamba in einem eigenen Environment ==== | ||
+ | |||
+ | Die Verwaltung von Softwarepaketen und Environments mit Conda erfolgt in einer Terminal-Sitzung des Notebook-Servers. Dazu muss nach der Anmeldung am Dienst eine Terminal über '' | ||
+ | |||
+ | Bevor mit " | ||
+ | <code bash> | ||
+ | . / | ||
+ | </ | ||
+ | |||
+ | === Erstellen eines neuen Environments === | ||
+ | |||
+ | Im Folgenden wird ein neues, einfaches Conda/ | ||
+ | |||
+ | Erstellen und Aktivieren des Environments: | ||
+ | <code bash> | ||
+ | mamba create -y --prefix ./wikidoku | ||
+ | mamba activate ./wikidoku | ||
+ | </ | ||
+ | |||
+ | Als nächstes wird beispielhaft das Paket '' | ||
+ | <code bash> | ||
+ | mamba install -y jinja2 | ||
+ | </ | ||
+ | |||
+ | Das nun aktivierte Environment wird dem Notebook-Server bekannt gemacht. '' | ||
+ | <code bash> | ||
+ | python3 -m ipykernel install --user --name wikidoku --display-name " | ||
+ | jupyter kernelspec list | ||
+ | mamba deactivate | ||
+ | </ | ||
+ | |||
+ | Sollte die Installation des Kernels mit der Fehlermeldung abbrechen ''/ | ||
+ | <code bash> | ||
+ | python3 -m pip install jupyter | ||
+ | </ | ||
+ | |||
+ | === Auswählen eines Environments === | ||
+ | |||
+ | == Neustart des Notebook-Servers == | ||
+ | |||
+ | Wurde ein neues Environment erstellt, muß zunächst der Notebook-Server neu gestartete werden. Dazu alle offenen Terminals und Notebooks schließen und in der Jupyter-Übersicht oben rechts auf '' | ||
+ | |||
+ | Über '' | ||
+ | |||
+ | === Installieren anderer Kernel in einem Conda/ | ||
+ | |||
+ | Die Installation eines eigenständigen Python-Kernels nur für das aktuelle Environment ist möglich. Hier wird beispielhaft die Installation eines alten python-2.7-Kernels gezeigt. | ||
+ | |||
+ | Ein neues Environment wird nach den o.g. Schritten erzeugt und aktiviert. | ||
+ | Danach erfolgt die Installation der Kernels, des '' | ||
+ | <code bash> | ||
+ | mamba install -y python=2.7 | ||
+ | python -m pip install jupyter | ||
+ | python -m ipykernel install --user --name oldpython --display-name " | ||
+ | </ | ||
+ | |||
+ | Der neue Kernel steht nun in neu-gestarteten Notebooks (s.o.) in der Kernel-Auswahl zur Verfügung. | ||
+ | Die aktuelle Kernel-Version kann in einem Notebook überprüft werden mit den folgendem Code: | ||
+ | <code python> | ||
+ | import sys | ||
+ | print (sys.version) | ||
+ | </ | ||
+ | |||
+ | === Environment entfernen === | ||
+ | |||
+ | Um ein Environment zu entfernen, wird es vom Notebook-Server abgemeldet und dann die zugehörigen Dateien gelöscht (optional, aber empfohlen). | ||
+ | |||
+ | <code bash> | ||
+ | jupyter kernelspec list | ||
+ | jupyter kernelspec remove wikidoku | ||
+ | rm -rf ./wikidoku | ||
+ | </ | ||
+ | |||
+ | ==== Installation zusätzlicher R Pakete ==== | ||
+ | < | ||
+ | 1) mkdir -p ~/ | ||
+ | 2) create a file "/ | ||
+ | " | ||
+ | 3) R | ||
+ | 4) source(" | ||
+ | 5) biocLite() | ||
+ | |||
+ | This is because R downloads and installs packages to and from the default tmp directory, | ||
+ | from which it cannot execute files. Using a tmp directory inside the home directory solves | ||
+ | this problem. | ||
+ | |||
+ | How to install packages from Github (in R): | ||
+ | |||
+ | 1) library(devtools) | ||
+ | 2) options(unzip = " | ||
+ | 3) install_github(" | ||
+ | |||
+ | </ | ||
+ | |||
+ | ==== Transfer von Daten in das Unix/ | ||
+ | Um den Zugriff auf größere Datenmengen auf jupyter.gwdg.de zu erleichtern, | ||
+ | |||
+ | Zunächst muss über das jupyter-Menü ein neues Terminal geöffnet werden: „New“ → „Terminal“ | ||
+ | |||
+ | < | ||
+ | ls mynotebooks/ | ||
+ | myfile.txt | ||
+ | rsync -av ~/ | ||
+ | sending incremental file list | ||
+ | ./ | ||
+ | myfile.txt | ||
+ | |||
+ | sent 145 bytes received 44 bytes 75.60 bytes/sec | ||
+ | total size is 12 speedup is 0.06 | ||
+ | </ | ||
+ | |||
+ | Ggf. muss der jeweilige ssh-private-key in das .ssh/ Verzeichnis in jupyter-cloud hinterlegt werden. Ebenso muss der zugehörige ssh-public-key auf login.gwdg.de vorhanden sein. | ||
+ | |||
+ | Für den Zugriff auf die Daten im Unix/ | ||
+ | |||
+ | ==== Zusätzlichen kernel mit pipenv bereitstellen | ||
+ | |||
+ | Open a new jupyter terminal via the menu “New” → “Terminal” | ||
+ | |||
+ | < | ||
+ | pip install pipenv --user | ||
+ | mkdir myproject | ||
+ | cd myproject | ||
+ | export PATH=~/ | ||
+ | pipenv --python / | ||
+ | pipenv install ipykernel networkx | ||
+ | pipenv shell | ||
+ | ipython kernel install --user --name=projectname | ||
+ | </ | ||
+ | |||
+ | * Stop and restart server via control panel | ||
+ | * Afterwards " | ||
+ | |||
+ | ==== Zusätzlichen julia kernel installieren ==== | ||
+ | ** !Experimentell! ** | ||
+ | |||
+ | < | ||
+ | (Terminal, Home Verzeichnis) | ||
+ | Ggf. .julia und .julia_history Verzeichnis löschen für sauberen Neuanfang. | ||
+ | mkdir .julia_bin | ||
+ | wget https:// | ||
+ | tar -xvzf julia-1.0.1-linux-x86_64.tar.gz | ||
+ | cd julia-1.0.1/ | ||
+ | ./julia | ||
+ | |||
+ | (Julia REPL) | ||
+ | |||
+ | ENV[" | ||
+ | import Pkg | ||
+ | Pkg.add(" | ||
+ | using IJulia | ||
+ | exit() | ||
+ | |||
+ | (Server neustarten) | ||
+ | </ | ||
+ | |||
+ | ==== Zusätzliche julia Pakete installieren mit extra Kernel ==== | ||
+ | ** !Experimentell! ** | ||
+ | |||
+ | Das verwendete jupyter docker stacks image hat die Variable JULIA_DEPOT_PATH auf den Pfad /opt/julia gesetzt. Dieser ist allerdings flüchtig, da nur das Home Directory persistent gehalten wird. Es wird folgend ein neuer julia kernel installiert, | ||
+ | |||
+ | < | ||
+ | Start terminal | ||
+ | Temporarily change julia package directories: | ||
+ | |||
+ | export JULIA_DEPOT_PATH=/ | ||
+ | export JULIA_PKGDIR=/ | ||
+ | |||
+ | Create directory for custom packages and new julia kernel: | ||
+ | |||
+ | > mkdir / | ||
+ | > julia | ||
+ | julia > # switch to pkg with ' | ||
+ | pkg > add IJulia # switch back to julia with CTRL+C | ||
+ | julia > using IJulia | ||
+ | | ||
+ | Restart notebook server | ||
+ | Create new notebook with " | ||
+ | Add package example: | ||
+ | |||
+ | using Pkg | ||
+ | Pkg.add(" | ||
+ | </ | ||
+ | |||
+ | ==== Wir kann ich als Tutor*In größere Datensätze mit Anderen teilen ? ==== | ||
+ | [[https:// | ||
+ | |||
+ | ==== LaTeX-Pakete , TeX Live ==== | ||
+ | |||
+ | In dem Notebook ist eine Basisinstallation von [[http:// | ||
+ | |||
+ | === tlmgr === | ||
+ | |||
+ | Für die installation zusätzlicher TeX-Pakete steht der Paketmanager [[https:// | ||
+ | Vor der erstmaligen Benutzung ist dieser aber kurz einzurichten, | ||
+ | Im Folgenden die Schritte zur Einrichtung von " | ||
+ | < | ||
+ | tlmgr init-usertree | ||
+ | tlmgr --usermode install siunitx | ||
+ | tlmgr repository add https:// | ||
+ | tlmgr option repository https:// | ||
+ | tlmgr repository list | ||
+ | tlmgr --usermode install siunitx | ||
+ | </ | ||
+ | Zuerst wird " |