Vai al contenuto principale

JupyterLab a Ilum

Panoramica

JupyterLab è l'ambiente di sviluppo interattivo basato sul Web di nuova generazione per notebook, codice e dati.
Within Ilum, JupyterLab serves as the main user interface for all interactive notebook workflows—whether launched in standalone/shared mode (with a single shared workspace) or provisioned automatically as a private workspace inside JupyterHub.

JupyterLab provides a flexible, modern IDE for working with Python, R, Scala, SQL, and more. It lets you edit, run, and visualize code in notebooks, scripts, or terminals, with access to Ilum’s Spark clusters and data storage.


Caratteristiche principali

  • IDE per notebook moderno
    Lavora in una potente interfaccia utente basata sul Web con browser di file, modifica a schede, terminali e supporto per il trascinamento della selezione.
  • Supporto linguistico
    Run code in Python, Scala, R, Bash, SQL, and more—using kernels or magic commands.
  • Modifica di più documenti
    Modifica ed esegui più notebook, script e terminali affiancati.
  • Integrazione con Spark
    Seamless connection to Ilum’s Spark clusters via Sparkmagic and Livy Proxy—run big data workloads from notebooks using %manage_spark, %%scintilla e magie correlate.
  • Controllo della versione Git
    • In JupyterLab standalone/condiviso: Un singolo repository Git condiviso gestito dall'account admin di Gitea.
    • In JupyterHub: Repository Git individuali e privati per utente gestito a Gitea.
  • Visualizzazione avanzata
    Supporto integrato per grafici, tabelle, matplotlib, plotly e altre librerie.
  • Estensibilità
    Installa ulteriori estensioni JupyterLab in base alle esigenze (se consentito dall'amministratore).

JupyterLab: Condiviso e JupyterHub (per utente)

AspettoJupyterLab (Standalone/Condiviso)JupyterLab in JupyterHub
Modello utenteSingolo utente o condiviso tra più utentiMultiutente, orchestrato da JupyterHub
AutenticazioneAccesso Nessuno/solo locale o sempliceLDAP/SSO (integrato in Ilum)
Isolamento dell'area di lavoroLocale o condiviso per tutti gli utentiPod Kubernetes isolato per utente
Gestione delle risorseServer locale o distribuzione condivisaCentrale, gestito da JupyterHub su K8s
Controllo della versioneRepository Git condiviso singolo (amministratore Gitea)Repository Git privato per utente (utente Gitea)
Integrazione con SparkPreconfigurato, tramite Livy Proxy e SparkmagicPreconfigurato, tramite Livy Proxy e Sparkmagic
Accesso ai datiVolumi Ilum, S3, archiviazione progettiVolumi Ilum, S3, archiviazione progetti
SicurezzaMinimoLivello aziendale (controllo degli accessi in base al ruolo, segreti, accesso basato su gruppo)

Modello di controllo della versione:

  • Nel modulo JupyterLab standalone/condiviso, tutti gli utenti lavorano con un singolo repository Git condiviso gestito dall'account admin di Gitea.
  • In JupyterHub, ogni utente riceve un repository privato individuale in Gitea, gestito automaticamente per utente.
  • Per un'esperienza orchestrata, sicura e controllata dalla versione, è consigliabile usare JupyterHub.

Registrazione e accesso

  • JupyterLab (condiviso):
    Accesso tramite Moduli > JupyterLab nell'interfaccia utente di Ilum.
    Gli utenti condividono un'area di lavoro comune e un singolo repository Git.
    L'autenticazione può essere semplice o disabilitata (a seconda della distribuzione).

  • JupyterHub (consigliato):
    Accesso tramite Moduli > JupyterLab nell'interfaccia utente di Ilum.
    L'utente verrà indirizzato tramite l'autenticazione SSO/LDAP Ilum (gestita da JupyterHub).
    Si aprirà il tuo spazio di lavoro JupyterLab, con file persistenti, dati, integrazione Spark e un repository Git personale.


Il tuo spazio di lavoro

In JupyterLab (versione condivisa)

  • Area di lavoro condivisa e repository:
    Tutti gli utenti condividono lo stesso spazio per i file e un singolo repository Git gestito dall'account admin di Gitea.
    Le modifiche apportate da qualsiasi utente sono visibili a tutti e devono essere coordinate.

    Nota sui flussi di lavoro multiutente:
    Se è necessario lavorare con più utenti in un'istanza JupyterLab condivisa (modalità standalone o non JupyterHub), è possibile creare una cartella separata per ogni utente all'interno del lavoro directory. Ogni utente può quindi lavorare nella propria sottocartella.

    Tuttavia, questo approccio non è né consigliato né sicuro.

    • In questa modalità non è prevista l'autenticazione o l'isolamento dell'utente a livello di JupyterLab.
      • Qualsiasi utente può sovrascrivere, eliminare o modificare i file appartenenti a un altro utente.
      • Rischi di perdere il tuo lavoro se un altro utente modifica o elimina accidentalmente (o intenzionalmente) i file nella tua cartella.

    Preferisci sempre l'uso di JupyterHub per ambienti notebook multiutente, isolati e sicuri.

  • Quaderni di partenza e struttura:
    Precompilato con notebook di esempio, dati di esempio e struttura di directory per un onboarding rapido.

  • Archiviazione supportata da Git:
    Tutte le modifiche devono essere salvate e inviate al repository condiviso.
    Utilizzare la barra laterale o il terminale Git (git aggiunge/commit/push).

In JupyterHub (versione per utente)

  • Area di lavoro privata e repository:
    Ogni utente riceve un Area di lavoro isolata collegato a un repository Git privato in Gitea, creato automaticamente al primo accesso.

  • Quaderni di partenza e struttura:
    Ogni repository privato viene inizializzato con file iniziali, modelli e struttura consigliata per l'onboarding.

  • Archiviazione supportata da Git:
    È possibile eseguire il commit di tutte le modifiche e inviarle al repository personale, disponibile solo per l'utente (e facoltativamente per gli amministratori).

  • Archiviazione persistente:
    I file vengono archiviati in volumi cluster, accessibili solo all'utente, e sincronizzati con il repository Git personale per il backup/controllo delle versioni.


Lavorare con Spark

JupyterLab in Ilum è pre-integrato con Apache Spark tramite Sparkmagic e il servizio Ilum-Livy-Proxy.
Flusso di lavoro:

  1. Usare %manage_spark per configurare e avviare le sessioni Spark.
  2. Usare %%scintilla magic per eseguire blocchi di codice Spark (Python/Scala/SQL) sul cluster, non localmente.
  3. Visualizza/gestisci i tuoi processi Spark tramite il modulo Carichi di lavoro dell'interfaccia utente Ilum.
  4. Le sessioni sono isolate per utente, mappate alle autorizzazioni e allo spazio di archiviazione.

Per l'utilizzo completo del notebook Spark, vedere Guida per i notebook Jupyter


Utilizzo di Git in JupyterLab

  • Estensione Git:
    Utilizza la scheda Git nella barra laterale di JupyterLab per eseguire lo staging, il commit e il push di codice/notebook.
  • Accesso al terminale:
    È inoltre possibile utilizzare Git comandi nel terminale.
  • Modello di repository:
    Tutte le modifiche vengono apportate in un repository condiviso gestito con l'account amministratore Gitea.
  • Credenziali:
    Autenticato con le credenziali configurate per il repository di amministrazione condiviso.
  • Collaborazione:
    Tutti gli utenti lavorano nello stesso repository, quindi coordinare i commit per evitare conflitti. È inoltre possibile esportare i blocchi appunti come .ipynb o PDF per la condivisione esterna.

Migliori pratiche

  • Commit spesso:
    Salva regolarmente il tuo lavoro su Git per garantire il controllo delle versioni e il backup.
  • Modifiche alle coordinate (versione condivisa):
    Se si utilizza la distribuzione JupyterLab condivisa, coordinarsi con il team per evitare conflitti nel repository condiviso.
  • Leva Sparkmagic:
    Usa sempre la magia di Spark per eseguire processi distribuiti; Non eseguire carichi di lavoro pesanti sul server notebook stesso.
  • Spegni i kernel inattivi:
    Libera risorse interrompendo i kernel o le sessioni inutilizzate.

Altre risorse