JupyterHub in Big Data Service 3.0.27 oder höher verwenden

Verwenden Sie JupyterHub, um Big Data Service 3.0.27- oder höher als ODH 2.x-Notizbücher für Benutzergruppen zu verwalten.

Voraussetzungen

Auf JupyterHub zugreifen

Greifen Sie über den Browser für ODH 2.x-Cluster von Big Data Service 3.0.27 oder höher auf JupyterHub zu.
  1. Greifen Sie auf Apache Ambari auf zu.
  2. Wählen Sie in der seitlichen Symbolleiste unter Services die Option JupyterHub aus.

JupyterHub verwalten

Ein JupyterHub-admin-Benutzer kann die folgenden Aufgaben ausführen, um Notizbücher in JupyterHub auf ODH 2.x-Knoten in Big Data Service 3.0.27 oder höher zu verwalten.

Informationen zum Verwalten von Oracle Linux 7-Services mit dem Befehl systemctl finden Sie unter Mit Systemservices arbeiten.

Informationen zur Anmeldung bei einer Oracle Cloud Infrastructure-Instanz finden Sie unter Verbindung mit der Instanz herstellen.

JupyterHub über Ambari stoppen, starten oder neu starten

Als Administrator können Sie JupyterHub stoppen oder deaktivieren, sodass es keine Ressourcen wie Arbeitsspeicher belegt. Ein Neustart kann auch bei unerwarteten Problemen oder Verhaltensweisen helfen.

Hinweis

Stoppen oder starten Sie JupyterHub über Ambari für Big Data Service 3.0.27-Cluster oder höher.
  1. Greifen Sie auf Apache Ambari auf zu.
  2. Wählen Sie in der seitlichen Symbolleiste unter Services die Option JupyterHub aus.
  3. Wählen Sie Aktionen aus:
    • Um JupyterHub zu starten, wählen Sie Start aus.
    • Um JupyterHub zu stoppen, wählen Sie Stoppen.
    • Um JupyterHub neu zu starten, wählen Sie Neu starten.
JupyterHub-Server wird hinzugefügt

Als Administrator können Sie einem Big Data Service-Knoten den Server JupyterHub hinzufügen.

Hinweis

Diese Option ist für Cluster von Big Data Service 3.0.27 oder höher verfügbar.
  1. Greifen Sie auf Apache Ambari auf zu.
  2. Wählen Sie in der seitlichen Symbolleiste Hosts aus.
  3. Um den JupyterHub-Server hinzuzufügen, wählen Sie einen Host aus, auf dem JupyterHub nicht installiert ist.
  4. Wählen Sie Hinzufügen aus.
  5. Wählen Sie JupyterHub Server.
JupyterHub-Server verschieben

Als Administrator können Sie den JupyterHub-Server in einen anderen Big Data Service-Knoten verschieben.

Hinweis

Diese Option ist für Cluster von Big Data Service 3.0.27 oder höher verfügbar.
  1. Greifen Sie auf Apache Ambari auf zu.
  2. Wählen Sie in der seitlichen Symbolleiste unter Services die Option JupyterHub aus.
  3. Wählen Sie Aktionen, JupyterHub-Server verschieben aus.
  4. Wählen Sie Weiter.
  5. Wählen Sie den Host aus, in den der JupyterHub-Server verschoben werden soll.
  6. Schließen Sie den Verschiebungsassistenten ab.
JupyterHub-Service-/Health Checks ausführen

Als Administrator können Sie JupyterHub-Service-/Health Checks über Ambari ausführen.

Hinweis

Diese Option ist für Cluster von Big Data Service 3.0.27 oder höher verfügbar.
  1. Greifen Sie auf Apache Ambari auf zu.
  2. Wählen Sie in der seitlichen Symbolleiste unter Services die Option JupyterHub aus.
  3. Wählen Sie Aktionen, Serviceprüfung ausführen aus.

Benutzer und Berechtigungen verwalten

Verwenden Sie eine der beiden Authentifizierungsmethoden, um Benutzer bei JupyterHub zu authentifizieren, damit sie Notizbücher erstellen und optional JupyterHub in ODH 2.x-Clustern in Big Data Service 3.0.27 oder höher verwalten können.

JupyterHub-Benutzer müssen als BS-Benutzer auf allen Big Data Service-Clusterknoten für Nicht-Active Directory-(AD-)Big Data Service-Cluster hinzugefügt werden, wobei Benutzer nicht automatisch über alle Clusterknoten hinweg synchronisiert werden. Administratoren können das Benutzerverwaltungsskript JupyterHub verwenden, um Benutzer und Gruppen hinzuzufügen, bevor sie sich bei JupyterHub anmelden.

Erforderlich

Gehen Sie folgendermaßen vor, bevor Sie auf JupyterHub zugreifen:

  1. Melden Sie sich mit SSH bei dem Knoten an, auf dem JupyterHub installiert ist.
  2. Navigieren Sie zu /usr/odh/current/jupyterhub/install.
  3. Um die Details aller Benutzer und Gruppen in der Datei sample_user_groups.json anzugeben, führen Sie Folgendes aus:
    sudo python3 UserGroupManager.py sample_user_groups.json
              
              Verify user creation by executing the following command:
              id <any-user-name>

Unterstützte Authentifizierungstypen

  • NativeAuthenticator: Dieser Authentikator wird für kleine oder mittlere JupyterHub-Anwendungen verwendet. Registrierung und Authentifizierung werden als nativ in JupyterHub implementiert, ohne sich auf externe Services zu verlassen.
  • SSOAuthenticator: Dieser Authentikator stellt eine Unterklasse von jupyterhub.auth.Authenticator bereit, die als SAML2-Serviceprovider fungiert. Leiten Sie sie an einen entsprechend konfigurierten SAML2-Identitätsprovider weiter, und aktivieren Sie Single Sign-On für JupyterHub.
Native Authentifizierung

Die native Authentifizierung ist von der JupyterHub-Benutzerdatenbank zur Authentifizierung von Benutzern abhängig.

Die native Authentifizierung gilt sowohl für HA- als auch für Nicht-HA-Cluster. Einzelheiten zum nativen Authentikator finden Sie unter Nativer Authentikator.

Voraussetzungen für die Autorisierung von Benutzern in einem HA-Cluster

Diese Voraussetzungen müssen erfüllt sein, um einen Benutzer in einem Big Data Service-HA-Cluster mit nativer Authentifizierung zu autorisieren.

  1. Der Benutzer muss auf dem Linux-Host vorhanden sein. Führen Sie den folgenden Befehl aus, um einen neuen Linux-Benutzer auf allen Knoten eines Clusters hinzuzufügen.
    # Add linux user
    dcli -C "useradd -d /home/<username> -m -s /bin/bash <username>"
  2. Um einen Notizbuchserver zu starten, muss ein Benutzer den Principal und die Keytab-Datei path/password bereitstellen und ein Kerberos-Ticket über die JupyterHub-Schnittstelle anfordern. Um eine Keytab zu erstellen, muss der Clusteradministrator den Kerberos- Principal mit einem Kennwort und einer Keytab-Datei hinzufügen. Führen Sie die folgenden Befehle auf dem ersten Masterknoten (mn0) im Cluster aus.
    # Create a kdc principal with password or give access to existing keytabs.
    kadmin.local -q "addprinc <principalname>"
    Password Prompt: Enter passwrod
     
    # Create a kdc principal with keytab file or give access to existing keytabs.
    kadmin.local -q 'ktadd -k /etc/security/keytabs/<principal>.keytab principal'
  3. Der neue Benutzer muss über die richtigen Ranger-Berechtigungen verfügen, um Dateien im HDFS-Verzeichnis hdfs:///users/<username> zu speichern, da die einzelnen Notizbücher in /users/<username>/notebooks gespeichert sind. Der Clusteradministrator kann die erforderliche Berechtigung über die Ranger-Schnittstelle hinzufügen, indem er die folgende URL in einem Webbrowser öffnet.
    https://<un0-host-ip>:6182
  4. Der neue Benutzer muss über die richtigen Berechtigungen für Yarn, Hive und Object Storage verfügen, um Daten lesen und schreiben sowie Spark-Jobs ausführen zu können. Alternativ kann der Benutzer die Livy-Impersonierung verwenden (Big Data Service-Jobs als Livy-Benutzer ausführen), ohne explizite Berechtigungen für Spark, Yarn und andere Services zu erhalten.
  5. Führen Sie den folgenden Befehl aus, um dem neuen Benutzer Zugriff auf das HDFS-Verzeichnis zu erteilen.
    # Give access to hdfs directory
    # kdc realm is by default BDSCLOUDSERVICE.ORACLE.COM
    kinit -kt /etc/security/keytabs/hdfs.headless.keytab hdfs-<clustername>@<kdc_realm> 
    sudo su hdfs -c "hdfs dfs -mkdir /user/<username>"
    sudo su hdfs -c "hdfs dfs -chown -R jupy5 /user/<username>"
Voraussetzungen für die Autorisierung eines Benutzer in einem Nicht-HA-Cluster

Diese Voraussetzungen müssen erfüllt sein, um einen Benutzer in einem Big Data Service-Nicht-HA-Cluster mit nativer Authentifizierung zu autorisieren.

  1. Der Benutzer muss auf dem Linux-Host vorhanden sein. Führen Sie den folgenden Befehl aus, um einen neuen Linux-Benutzer auf allen Knoten eines Clusters hinzuzufügen.
    # Add linux user
    dcli -C "useradd -d /home/<username> -m -s /bin/bash <username>"
  2. Der neue Benutzer muss über die richtigen Berechtigungen zum Speichern von Dateien im HDFS-Verzeichnis hdfs:///users/<username> verfügen. Führen Sie den folgenden Befehl aus, um dem neuen Benutzer Zugriff auf das HDFS-Verzeichnis zu erteilen.
    # Give access to hdfs directory
    sudo su hdfs -c "hdfs dfs -mkdir /user/<username>"
    sudo su hdfs -c "hdfs dfs -chown -R jupy5 /user/<username>"
Admin-Benutzer hinzufügen

Admin-Benutzer sind für die Konfiguration und Verwaltung von JupyterHub verantwortlich. Admin-Benutzer sind auch für die Autorisierung neu registrierter Benutzer in JupyterHub verantwortlich.

Bevor Sie einen Admin-Benutzer hinzufügen, müssen die Voraussetzungen für ein HA-Cluster oder Nicht-HA-Cluster erfüllt sein.

  1. Greifen Sie auf Apache Ambari auf zu.
  2. Wählen Sie in der seitlichen Symbolleiste unter Services die Option JupyterHub aus.
  3. Wählen Sie Konfigurationen, Erweiterte Konfigurationen aus.
  4. Wählen Sie Advanced jupyterhub-config aus.
  5. Fügen Sie den Admin-Benutzer zu c.Authenticator.admin_users hinzu.
  6. Wählen Sie Speichern aus.
Ein Admin-Benutzer in der Konfigurationsdatei JupyterHub muss während der Anmeldung keine explizite Autorisierung haben. Nach der Registrierung können Sie sich direkt anmelden.
Andere Benutzer hinzufügen

Bevor Sie andere Benutzer hinzufügen, müssen die Voraussetzungen für ein Big Data Service-Cluster erfüllt sein.

  1. Öffnen Sie JupyterHub.
  2. Registrieren Sie den neuen Benutzer. Nicht-Admin-Benutzer benötigen eine eindeutige Autorisierung durch die Administratorbenutzer.
  3. Der Admin-Benutzer muss sich bei JupyterHub anmelden und über die neue Menüoption zur Autorisierung angemeldeter Benutzer den neuen Benutzer autorisieren.
    Screenshot der Seite "Authorize Users" in JupyterHub
  4. Der neue Benutzer kann sich jetzt anmelden.
Benutzer löschen

Ein Admin-Benutzer kann JupyterHub-Benutzer löschen.

  1. Öffnen Sie JupyterHub.
  2. Öffnen Sie File > HubControlPanel.
  3. Navigieren Sie zur Seite Authorize Users.
  4. Löschen Sie die Benutzer, die Sie entfernen möchten.
LDAP-Authentifizierung

Sie können die LDAP-Authentifizierung über Ambari für ODH 2.x-Cluster von Big Data Service 3.0.27 oder höher verwenden.

LDAP-Authentifizierung mit Ambari verwenden

Um den LDAP-Authentikator zu verwenden, müssen Sie die JupyterHub-Konfigurationsdatei um die LDAP-Verbindungsdetails aktualisieren.

Hinweis

Verwenden Sie Ambari für die LDAP-Authentifizierung in Clustern von Big Data Service 3.0.27 oder höher.

Einzelheiten zum LDAP-Authentikator finden Sie unter LDAP-Authentikator.

  1. Greifen Sie auf Apache Ambari auf zu.
  2. Wählen Sie in der seitlichen Symbolleiste unter Services die Option JupyterHub aus.
  3. Wählen Sie Konfig aus, und geben Sie unter Erweiterte jupyterHub-Konfiguration > Basiseinstellungen Folgendes ein:
    c.JupyterHub.authenticator_class = 'ldapauthenticator.LDAPAuthenticator'
              c.LDAPAuthenticator.server_port = <port>
              c.LDAPAuthenticator.server_address = 'ldaps://<host>'
              c.LDAPAuthenticator.lookup_dn = False
              c.LDAPAuthenticator.use_ssl = True
              c.LDAPAuthenticator.lookup_dn_search_filter = '({login_attr}={login})'
              c.LDAPAuthenticator.lookup_dn_search_user = '<user>'
              c.LDAPAuthenticator.lookup_dn_search_password = '<example-password>'
              #c.LDAPAuthenticator.user_search_base = 'ou=KerberosPrincipals,ou=Hadoop,dc=cesa,dc=corp'
              c.LDAPAuthenticator.user_attribute = 'sAMAccountName'
              c.LDAPAuthenticator.lookup_dn_user_dn_attribute = 'cn'
              c.LDAPAuthenticator.escape_userdn = False
              c.LDAPAuthenticator.bind_dn_template = ["cn={username},ou=KerberosPrincipals,ou=Hadoop,dc=cesa,dc=corp"]
  4. Starten Sie JupyterHub neu.
SSO-Authentifizierung in Big Data Service JupyterHub konfigurieren

pConfigure SSO-Authentifizierung in Big Data Service 3.0.27 oder höher ODH 2.x JupyterHub-Service.

Oracle-Identitätsdomain verwenden

Mit der Oracle-Identitätsdomain können Sie SSO-Authentifizierung in ODH 2.x JupyterHub-Clustern in Big Data Service 3.0.27 oder höher einrichten.

  1. Identitätsdomain erstellen. Weitere Informationen finden Sie in .
  2. Fügen Sie in der Domain unter Integrierte Anwendungen eine SAML-Anwendung hinzu.
  3. Geben Sie die folgenden erforderlichen Details beim Erstellen der Anwendung an:
    • Entity-ID: Dies ist eine eindeutige ID. Sie können die Basis-URL von JupyterHub verwenden, z.B. https://myjupyterhub/saml2_auth/ent.
    • Assertion Consumer-URL:
      • JupyterHub-URL: https://<Jupyterhub-Host>:<Port>/hub/saml2_auth/acs
      • Load-Balancer-URL: https://<Load-Balancer>:<Port>/hub/saml2_auth/acs
    • URL für einzelne Abmeldung, URL für Abmeldeantwort: https://<Jupyterhub-Host>:<Port>/hub/logout
  4. Aktivieren Sie die Anwendung.
  5. Benutzer der Anwendung zuweisen.
  6. Navigieren Sie zur erstellten Anwendung, und wählen Sie Identitätsprovider-Metadaten herunterladen aus. Kopieren Sie diese Metadatendatei dann auf den Host JupyterHub, und stellen Sie sicher, dass sie Lesezugriff für alle Benutzer hat.
  7. Aktualisieren Sie die Sessionparameter des Benutzers. Weitere Informationen finden Sie unter Festlegen von Sessionlimits.
OKTA über Ambari verwenden

Mit OKTA können Sie SSO-Authentifizierung in Big Data Service 3.0.27- oder höherem ODH 2.x JupyterHub-Cluster einrichten.

  1. Bei OKTA anmelden.
  2. Wählen Sie in der seitlichen Symbolleiste Anwendungen > Anwendungen > Anwendungsintegration erstellen aus.
  3. Wählen Sie SAML 2.0.
  4. Geben Sie die folgenden Details an, und erstellen Sie die Anwendung.
    • App-Name: Der Name der Anwendung. Beispiel: JupyterHub-SSO.
    • Single Sign-On-URL: Die Single Sign-On-URL. Beispiel: https://<Jupyterhub-Host>:<Port>/hub/saml2_auth/acs.
    • Audience URI (SP Entity ID): Die eindeutige ID. Sie können die Basis-URL von JupyterHub verwenden. Beispiel: https://myjupyterhub/saml2_auth/ent.
  5. Benutzer der Anwendung zuweisen.
  6. Wählen Sie die Registerkarte "Anmelden", und rufen Sie die folgenden Details ab:
    • Metadaten-URL: Laden Sie die Metadatendatei herunter, und kopieren Sie sie auf den JupyterHub-Host.
    • Anmelde-URL: Kopieren Sie die Anmelde-URL, und aktualisieren Sie sie dann in den JupyterHub-Konfigurationen (saml2_login_url).
SSO aktivieren
  1. Greifen Sie auf Apache Ambari auf zu.
  2. Wählen Sie in der seitlichen Symbolleiste unter Services die Option JupyterHub aus.
  3. Wählen Sie Konfig > Einstellungen > Notizbuchserver-Authentikator.
  4. Wählen Sie SamlSSOAuthenticator.
  5. Wählen Sie Speichern aus.
  6. Wählen Sie Erweitert aus.
  7. Aktualisieren Sie die Parameter im Abschnitt Erweiterte Jupiter-Konfiguration SamlSSOAuthenticator-Konfigurationen:
    • c.Saml2Authenticator.saml2_metadata_file name: Der Pfad zur Identitätsprovider-(IDP-)Metadatendatei im installierten Knoten JupyterHub. Beispiel: '/tmp/IDCSMetadata.xml'.

    • c.Saml2Authenticator.saml2_entity_id: Eine eindeutige ID zur Verwaltung der Zuordnung vom Identitätsprovider (IDP) zum Serviceprovider (JupyterHub). Diese ID muss sowohl in den IDP-Anwendungskonfigurationen als auch im Serviceprovider (JupyterHub) identisch sein. Beispiel: https://myjupyterhub/saml2_auth/ent

    • c.Saml2Authenticator.saml2_login_URL: Die Single Sign-On-(SSO-)Anmelde-URL. Für Oracle IDCS-Benutzer kann dieser Wert über den IDP metadata.xml file abgerufen werden. Suchen Sie in der Datei metadata.xml file nach dem Tag AssertionConsumerService, und rufen Sie den Wert des Locationattributs ab. Kopieren Sie für OKTA den Wert der Anmelde-URL auf der Registerkarte "Anmelden". Beispiel: https://idcs-1234.identity.oraclecloud.com/fed/v1/sp/sso

    • #c.Saml2Authenticator.saml2_metadata_URL: Optional. Die URL der Identitätsprovider-(IDP-)Metadatendatei. Stellen Sie sicher, dass die angegebene URL vom installierten Knoten JupyterHub aus erreichbar ist. Entweder saml2_metadata_filename oder saml2_metadata_url ist erforderlich. Beispiel: https://idcs-1234.identity.oraclecloud.com/sso/saml/metadata

    • #c.Saml2Authenticator.saml2_attribute_username: Optional. Geben Sie ein Attribut an, das als Benutzer aus der SAML-Assertion betrachtet werden soll. Wenn kein Attribut angegeben ist, wird der Anmeldebenutzername als Benutzer behandelt. Geben Sie 'E-Mail' ein.

    • #c.Saml2Authenticator.saml2_private_file_path und #c.Saml2Authenticator.saml2_public_file_path: Optional. Wenn der Identitätsprovider (IDP) Assertion-Daten verschlüsselt, muss der Serviceprovider (SP) JupyterHub die erforderlichen privaten und öffentlichen Schlüssel bereitstellen, um die Assertion-Daten zu entschlüsseln. Beispiel:

      #c.Saml2Authenticator.saml2_public_file_path: '/etc/security/serverKeys/jupyterhubsso.key'

      #c.Saml2Authenticator.saml2_public_file_path: '/etc/security/serverKeys/jupyterhubsso.crt'

    • #c.Saml2Authenticator.login_service: Optional. Dadurch wird die Schaltfläche "Anmelden" so konfiguriert, dass sie als 'Sign in with {login_service}' angezeigt wird. Geben Sie 'Oracle IDCS' ein.

  8. Starten Sie JupyterHub neu.
JupyterHub über Ambari konfigurieren

Als Administrator können Sie JupyterHub-Konfigurationen über Ambari für ODH 2.x-Cluster in Big Data Service 3.0.27 oder höher verwalten.

  1. Greifen Sie auf Apache Ambari auf zu.
  2. Wählen Sie in der seitlichen Symbolleiste unter Services die Option JupyterHub aus.
  3. Wählen Sie Configs aus. Folgende Konfigurationen werden unterstützt:
    • Spawner-Konfiguration:
      • ODHSystemdSpawner: Ein benutzerdefinierter Spawner, mit dem Einzelbenutzer-Notizbuchserver mit systemd auf dem lokalen Knoten gestartet werden, auf dem der JupyterHub-Server installiert ist.
      • ODHYarnSpawner: Ein benutzerdefinierter Spawner für JupyterHub, der Notizbuchserver auf YARN-Clustern startet. Dies ist der Standard-Spawner, der von Big Data Service verwendet wird.
    • Allgemeine Konfiguration: Dies sind Konfigurationen wie Binding-IP und Port, in denen JupyterHub ausgeführt wird.
    • Authentikatorkonfiguration: Wir unterstützen zwei Authentikatoren, mit denen Benutzer authentifiziert werden können, die sich bei JupyterHub anmelden. Weitere Informationen zu den Authentifizierungstypen finden Sie unter Benutzer und Berechtigungen verwalten.
    • Persistenz-Modus:
      • HDFS: Damit können Sie Notizbücher über HDFS persistieren
      • Git: Damit können Sie eine JupyterLab-Erweiterung zur Versionskontrolle mit Git verwenden. Dadurch wird die Persistenz von Notizbüchern auf Remoteservern über Git ermöglicht.

Notizbücher starten

Die folgenden Spawner-Konfigurationen werden in Big Data Service 3.0.27- und späteren ODH 2.x-Clustern unterstützt.

Geben Sie folgende Werte an:

  1. Native Authentifizierung:
    1. Melden Sie sich mit den Zugangsdaten des angemeldeten Benutzers an.
    2. Benutzername eingeben.
    3. Kennwort eingeben.
  2. Verwenden Sie SamlSSOAuthenticator:
    1. Melden Sie sich mit SSO an.
    2. Schließen Sie die Anmeldung mit der konfigurierten SSO-Anwendung ab.

Notebooks in einem HA-Cluster starten

Für AD-integriertes Cluster:

  1. Melden Sie sich mit einer der oben genannten Methoden an. Die Autorisierung funktioniert nur, wenn der Benutzer auf dem Linux-Host vorhanden ist. JupyterHub sucht den Benutzer auf dem Linux-Host, während versucht wird, den Notizbuchserver zu starten.
  2. Sie werden umgeleitet auf eine Seite mit Serveroptionen, auf der Sie ein Kerberos-Ticket anfordern müssen. Dieses Ticket kann entweder mit dem Kerberos-Principal und der Keytab-Datei oder mit dem Kerberos-Kennwort angefordert werden. Der Clusteradministrator kann den Kerberos- Principal und die Keytab-Datei oder das Kerberosos-Kennwort angeben. Sie benötigen das Kerberos-Ticket, um Zugriff auf die HDFS-Verzeichnis und anderen Big-Data-Services zu erhalten, die Sie verwenden möchten.

Notizbücher in einem Nicht-HA-Cluster starten

Für AD-integriertes Cluster:

Melden Sie sich mit einer der oben genannten Methoden an. Die Autorisierung funktioniert nur, wenn der Benutzer auf dem Linux-Host vorhanden ist. JupyterHub sucht den Benutzer auf dem Linux-Host, während versucht wird, den Notizbuchserver zu starten.

Git-Umgebung einrichten
  1. Konfigurieren Sie SSH-Schlüssel/Zugriffstoken für den Big Data Service-Clusterknoten.
  2. Wählen Sie den Notizbuchpersistenzmodus als Git aus.
Git-Verbindung einrichten

Gehen Sie folgendermaßen vor, um die Git-Verbindung für JupyterHub einzurichten:

  1. SSH-Schlüssel konfigurieren/Zugriffstoken für den Big Data-Serviceclusterknoten.
  2. Notizbuchpersistenzmodus als Git auswählen

SSH-Schlüsselpaar generieren

  1. Öffnen Sie ein Terminal oder eine Befehlszeile.
  2. Um ein neues SSH-Schlüsselpaar zu generieren, führen Sie folgenden Befehl aus:
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  3. (Optional) Befolgen Sie die Prompts, um den Dateispeicherort und die Passphrase anzugeben (optional).
  4. Public Key registrieren:
    1. Melden Sie sich bei Ihrem Git-Serveraccount an.
    2. Navigieren Sie zum Abschnitt "Einstellungen" oder "SSH-Schlüssel" Ihres Kontos.
    3. Fügen Sie den Inhalt des Public Keys (~/.ssh/id_rsa.pub) zum Git-Serveraccount hinzu.
  5. Konfigurieren Sie den SSH-Agent:

    Wenn viele SSH-Schlüssel vom SSH-Agent verwaltet werden, können Sie eine Konfigurationsdatei erstellen, um anzugeben, welcher Schlüssel für jeden Git-Server verwendet werden soll.

    1. Öffnen oder erstellen Sie die SSH-Konfigurationsdatei (~/.ssh/config) in einem Texteditor.
    2. Fügen Sie Einträge für jeden Git-Server hinzu, der die Identitätsdatei angibt, die mit jedem SSH-Schlüssel verknüpft ist.
  6. Verbinden Sie das lokale Git-Repository mit SSH per Remotezugriff:
    1. Öffnen Sie ein Terminal oder eine Befehlszeile.
    2. Navigieren Sie zum lokalen Git-Repository.
    3. Um die Remote-URL von HTTPS zu SSH zu wechseln, führen Sie folgenden Befehl aus:
      
      git remote set-url origin git@github.com:username/repository.git

      Ersetzen Sie username/repository.git durch die entsprechende Git-Repository-URL.

  7. Prüfen Sie die SSH-Verbindung:
    1. Testen Sie die SSH-Verbindung zum Git-Server:
      ssh -T git@github.com
  8. (Optional) Wenn Sie aufgefordert werden, die Authentizität des Hosts zu bestätigen, geben Sie Yes ein, um fortzufahren.

Zugriffstoken verwenden

Sie können Zugriffstoken wie folgt verwenden:

  • GitHub:
    1. Melden Sie sich bei Ihrem GitHub-Account an.
    2. Navigieren Sie zu Einstellungen > Entwicklereinstellungen > Persönliche Zugriffstoken.
    3. Generieren Sie ein neues Zugriffstoken mit den entsprechenden Berechtigungen.
    4. Verwenden Sie das Zugriffstoken als Kennwort, wenn Sie zur Authentifizierung aufgefordert werden.
  • GitLab:
    1. Melden Sie sich bei Ihrem GitHub-Account an.
    2. Navigieren Sie zu Einstellungen > Zugriffstoken.
    3. Generieren Sie ein neues Zugriffstoken mit den entsprechenden Berechtigungen.
    4. Verwenden Sie das Zugriffstoken als Kennwort, wenn Sie zur Authentifizierung aufgefordert werden.
  • BitBucket:
    1. Melden Sie sich bei Ihrem BitBucket-Account an.
    2. Navigieren Sie zu Einstellungen > App-Kennwörter.
    3. Generieren Sie ein neues App-Kennworttoken mit den entsprechenden Berechtigungen.
    4. Verwenden Sie das neue App-Passwort als Passwort, wenn Sie zur Authentifizierung aufgefordert werden.

Persistenzmodus als Git auswählen

  1. Greifen Sie auf Apache Ambari auf zu.
  2. Wählen Sie in der seitlichen Symbolleiste unter Services die Option JupyterHub aus.
  3. Wählen Sie Konfigurationen, Einstellungen aus.
  4. Suchen Sie nach dem Notizbuchpersistenzmodus, und wählen Sie in der Dropdown-Liste die Option Git aus.
  5. Wählen Sie Aktionen, Alle neu starten aus.
HDFS in der Datei JupyterHub zum Speichern von Notizbüchern einrichten
Um HDFS als Standardspeicher für JupyterHub-Notizbücher einzurichten, wählen Sie den Persistenzmodus als HDFS aus.
  1. Greifen Sie auf Apache Ambari auf zu.
  2. Wählen Sie in der seitlichen Symbolleiste unter Services die Option JupyterHub aus.
  3. Wählen Sie Konfigurationen, Einstellungen aus.
  4. Suchen Sie nach dem Notizbuchpersistenzmodus, und wählen Sie in der Dropdown-Liste die Option HDFS aus.
  5. Wählen Sie Aktionen, Alle neu starten aus.
Object Storage in JupyterHub zum Speichern von Notizbüchern einrichten

Als Admin-Benutzer können Sie die einzelnen Benutzernotizbücher in Object Storage statt in HDFS speichern. Wenn Sie den Content Manager von HDFS in Objektspeicher ändern, werden die vorhandenen Notizbücher nicht in Objektspeicher kopiert. Die neuen Notizbücher werden in Object Storage gespeichert.

  1. Greifen Sie auf Apache Ambari auf zu.
  2. Wählen Sie in der seitlichen Symbolleiste unter Services die Option JupyterHub aus.
  3. Wählen Sie Konfigurationen, Erweitert aus.
  4. Navigieren Sie zum Abschnitt c.YarnSpawner.args = yarn_spawner_default_rags, und ersetzen Sie den Inhalt durch:
    c.YarnSpawner.args = ['--ServerApp.contents_manager_class="s3contents.S3ContentsManager"', '--S3ContentsManager.bucket="<bucket-name>"', '--S3ContentsManager.access_key_id="<accesskey>"', '--S3ContentsManager.secret_access_key="<secret-key>"', '--S3ContentsManager.endpoint_url="https://<object-storage-endpoint>"', '–S3ContentsManager.region_name=""','–ServerApp.root_dir=""']
  5. Starten Sie alle JupyterHub-Server im Menü Aktionen neu.

Oracle Object Storage-Bucket mit rclone und Benutzer-Principal-Authentifizierung mounten

Sie können Oracle Object Storage mit rclone mit der Benutzer-Principal-Authentifizierung (API-Schlüssel) auf einem Big Data-Serviceclusterknoten mit rclone und fuse3 mounten, die auf JupyterHub-Benutzer zugeschnitten sind.

Führen Sie diese Schritte für ODH 2.x-Cluster von Big Data Service 3.0.28 oder höher aus, um den nahtlosen Zugriff und die Verwaltung von Object Storage direkt aus Ihrer JupyterHub-Umgebung zu ermöglichen und Ihre Datenverarbeitungsfunktionen zu verbessern.
  1. Greifen Sie auf Apache Ambari auf zu.
  2. Wählen Sie in der seitlichen Symbolleiste unter Services die Option JupyterHub aus.
  3. Wählen Sie Übersicht, JUPYTERHUB_SERVER aus.
  4. Rufen Sie die Hostinformationen aus den angezeigten Hostinformationen ab.
  5. Melden Sie sich beim Big Data Service-Host mit den SSH-Zugangsdaten an, die beim Erstellen des Clusters verwendet werden. Weitere Informationen finden Sie unter Verbindung zu Clusterknoten mit SSH herstellen.
  6. Um die Installation von rclone und fuse3 auf dem Knoten zu prüfen, führen Sie Folgendes aus:
    rclone version 
    # Ensure version is v1.66
    
    fusermount3 --version 
    # Ensure FUSE version 3 is installed
  7. Erstellen Sie einen API-Schlüssel, und richten Sie die rclone-Konfiguration ein. Weitere Informationen finden Sie unter Authentifizierung mit einem OCI-Benutzer und API-Schlüssel einrichten, OCI-Mandanten-Namespace und Bucket Compartment abrufen.
  8. Richten Sie die rclone-Konfiguration ein. Weitere Informationen finden Sie unter Rclone für OCI Object Storage konfigurieren.
  9. Um den Objektspeicher-Bucket zu mounten, führen Sie den folgenden Befehl als Anmeldebenutzer aus.

    Im Folgenden wird der Mountvorgang mit dem angemeldeten Benutzer "JupyterHub" ausgeführt. Der Daemon-Prozess wird als Linux-Prozess auf dem Knoten ausgeführt, auf dem dieser Vorgang ausgelöst wird.

    sudo -u jupyterhub rclone mount remote_name:bucket1 /home/jupyterhub/mount_dir --allow-non-empty --file-perms 0666 --dir-perms 0777 --vfs-cache-mode=full --dir-cache-time=30s --vfs-write-back=2m --cache-info-age=60m --daemon
    
    Hinweis

    Um mit Jupyter-Notizbüchern zu arbeiten, stellen Sie sicher, dass sich der Mountspeicherort im Home-Verzeichnis des angemeldeten Benutzers befindet, und stellen Sie sicher, dass das Mountverzeichnis leer ist.
    sudo -u jupyterhub ls -ltr /home/jupyterhub/mount_dir
  10. (Optional) Führen Sie den folgenden Befehl aus, um zu prüfen, ob der Mount erfolgreich war. In diesem Beispiel wird der Inhalt des mount_dir-Buckets aufgeführt.
    sudo -u jupyterhub ls -ltr /home/jupyterhub/mount_dir
    
  11. Bereinigungsprozeduren ausführen

    Bei Ausführung im Hintergrundmodus müssen Sie den Mount manuell stoppen. Verwenden Sie die folgenden Bereinigungsvorgänge, wenn JupyterHub- und Notizbuchserver nicht verwendet werden.

    Linux:
    sudo -u jupyterhub fusermount3 -u /home/jupyterhub/mount_dir
    Der Vorgang umount kann nicht erfolgreich ausgeführt werden, z.B. wenn der Einhängepunkt belegt ist. In diesem Fall liegt es in der Verantwortung des Benutzers, den Mount manuell zu stoppen.
    sudo -u jupyterhub umount -l /home/jupyterhub/mount_dir : lazy unmount
    sudo -u jupyterhub umount -f /home/jupyterhub/mount_dir : force unmount
    

Conda-Umgebungen in JupyterHub verwalten

Hinweis

Sie können Conda-Umgebungen in ODH 2.x-Clustern von Big Data Service 3.0.28 oder höher verwalten.
  • Erstellen Sie eine Conda-Umgebung mit bestimmten Abhängigkeiten, und erstellen Sie vier Kernel (Python/PySpark/Spark/SparkR), die auf die erstellte Conda-Umgebung verweisen.
  • Conda-Umgebungen und Kernel, die mit diesem Vorgang erstellt wurden, sind für alle Notizbuchserverbenutzer verfügbar.
  • Beim separaten Vorgang "Conda-Umgebung erstellen" wird der Vorgang mit einem Neustart des Service entkoppelt.
Voraussetzungen
  • JupyterHub wird über die Ambari-UI installiert.
  • Prüfen Sie den Internetzugriff auf das Cluster, um Abhängigkeiten während der Conda-Erstellung herunterzuladen.
  • Conda-Umgebungen und Kernel, die mit diesem Vorgang erstellt wurden, sind für alle Benutzer des Notizbuchservers verfügbar."
  • Angeben:
    • Zusätzliche Conda-Konfigurationen zur Vermeidung von Conda-Erstellungsfehlern. Weitere Informationen finden Sie unter conda create.
    • Abhängigkeiten im Standardanforderungsformat.txt.
    • Ein Conda-Umgebungsname, der nicht vorhanden ist.
  • Löschen Sie Conda-Umgebungen oder Kernel manuell.
Globale Konfigurationen anpassen
  1. Greifen Sie auf Apache Ambari auf zu.
  2. Wählen Sie in der seitlichen Symbolleiste unter Services die Option JupyterHub aus.
  3. Wählen Sie Konfigurationen, Erweitert aus.
  4. Scrollen Sie zum Abschnitt jupyterhub-conda-env-configs.
  5. Aktualisieren Sie die folgenden Felder:
    • Zusätzliche Conda-Konfigurationen: Mit diesem Feld können Sie zusätzliche Parameter angeben, die an den Standardbefehl zur Conda-Erstellung angehängt werden sollen. Der Standardbefehl zum Erstellen von Conda-Umgebungen ist 'conda create -y -p conda_env_full_path -c conda-forge pip python=3.8.

      Wenn die zusätzlichen Konfigurationen als '--override-channels --no-default-packages --no-pin -c pytorch' angegeben werden, lautet der letzte Befehl zum Erstellen der Conda-Umgebung 'conda create -y -p conda_env_full_path -c conda-forge pip python=3.8 --override-channels --no-default-packages --no-pin -c pytorch'..

    • Conda-Umgebungsname: Dieses Feld gibt einen eindeutigen Namen für die Conda-Umgebung an. Geben Sie bei jeder Erstellung einer neuen Umgebung eine eindeutige Conda-Umgebung an.
    • Python-Abhängigkeiten: In diesem Feld werden alle python/R/Ruby/Lua/Scala/Java/JavaScript/C/C++/FORTRAN-Abhängigkeiten aufgelistet, auf die Ihre Conda-Kanäle im Format der Datei "Anforderungen.txt" zugreifen können.

      Weitere Informationen zu den .txt-Dateianforderungen finden Sie unter Dateiformat für Anforderungen.

  6. Wählen Sie Speichern aus.
  7. Wählen Sie Aktionen, Conda-Umgebung aktivieren aus.
    Nach Abschluss der Aktivierung wird in der JupyterHub-UI Folgendes angezeigt:
    • Python-Kernel: conda_python3_kernel_{conda_env_name}
    • PySpark-Kernel: conda_pyspark_kernel_{conda_env_name}
    • Spark-Kernel: conda_spark_kernel_{conda_env_name}
    • SparkR-Kernel: conda_sparkr_kernel_{conda_env_name}
    Hinweis

    Diese Kernel verweisen auf die erstellte Conda-Umgebung.
Benutzerspezifische Conda-Umgebung einrichten

Dieser Vorgang erstellt eine Conda-Umgebung mit angegebenen Abhängigkeiten und erstellt den angegebenen Kernel (Python/PySpark/Spark/SparkR), der auf die erstellte Conda-Umgebung verweist.

  • Wenn die angegebene Conda-Umgebung bereits vorhanden ist, wird der Vorgang direkt mit dem Kernel-Erstellungsschritt fortgesetzt
  • Conda-Umgebungen oder Kernel, die mit diesem Vorgang erstellt wurden, sind nur für einen bestimmten Benutzer verfügbar
  • Führen Sie das python-Skript kernel_install_script.py manuell im sudo-Modus aus:
     '/var/lib/ambari-server/resources/mpacks/odh-ambari-mpack-2.0.8/stacks/ODH/1.1.12/services/JUPYTER/package/scripts/'

    Beispiel:

    sudo python kernel_install_script.py --conda_env_name conda_jupy_env_1 --conda_additional_configs '--override-channels --no-default-packages --no-pin -c pytorch' --custom_requirements_txt_file_path ./req.txt --kernel_type spark --kernel_name spark_jupyterhub_1 --user jupyterhub

Voraussetzungen

  • Prüfen Sie den Internetzugriff auf das Cluster, um Abhängigkeiten während der Conda-Erstellung herunterzuladen. Andernfalls verläuft die Erstellung nicht erfolgreich.
  • Wenn ein Kernel mit dem Namen --kernel_name vorhanden ist, wird eine Ausnahme ausgelöst.
  • Gehen Sie wie folgt vor:
  • Löschen Sie Conda-Umgebungen oder Kernel manuell für jeden Benutzer.

Verfügbare Konfigurationen für Anpassung

  • --user (obligatorisch): BS- und JupyterHub-Benutzer, für den Kernel- und Conda-Umgebungen erstellt werden.
  • --conda_env_name (obligatorisch): Geben Sie bei jeder Erstellung einer neuen En für --user einen eindeutigen Namen für die Conda-Umgebung an.
  • --kernel_name: (Pflichtfeld) Geben Sie einen eindeutigen Kernel-Namen an.
  • --kernel_type: (obligatorisch) Muss einer der folgenden Werte sein (python / PysPark / Spark / SparkR)
  • --custom_requirements_txt_file_path: (optional) Wenn Python/R/Ruby/Lua/Scala/Java/JavaScript/C/C++/FORTRAN usw. Abhängigkeiten über Conda-Kanäle installiert werden, müssen Sie diese Librarys in einer Anforderungsdatei .txt angeben und den vollständigen Pfad angeben.

    Weitere Informationen zu einem Standardformat zum Definieren der Anforderungsdatei .txt finden Sie unter https://pip.pypa.io/en/stable/reference/requirements-file-format/.

  • --conda_additional_configs: (optional)
    • Dieses Feld enthält zusätzliche Parameter, die an den Standardbefehl zur Conda-Erstellung angehängt werden können.
    • Der Standardbefehl zum Erstellen von Conda-Umgebungen lautet: 'conda create -y -p conda_env_full_path -c conda-forge pip python=3.8'.
    • Wenn --conda_additional_configs als '--override-channels --no-default-packages --no-pin -c pytorch' angegeben wird, lautet der letzte Conda-Erstellungsbefehl 'conda create -y -p conda_env_full_path -c conda-forge pip python=3.8 --override-channels --no-default-packages --no-pin -c pytorch'.

Benutzerspezifische Conda-Umgebung einrichten

  1. Prüfen Sie, ob JupyterHub über die Ambari-UI installiert wurde.
  2. Stellen Sie eine SSH-Verbindung zum Cluster her, und navigieren Sie zu /var/lib/ambari-server/resources/mpacks/odh-ambari-mpack-2.0.8/stacks/ODH/1.1.12/services/JUPYTER/package/scripts/.
  3. Ausführung mit spezifischen Anforderungen an Ihre Umgebung:
    sudo python/python3 kernel_install_script.py --conda_env_name conda_jupy_env_1 --conda_additional_configs '--override-channels --no-default-packages --no-pin -c pytorch' --custom_requirements_txt_file_path ./req.txt --kernel_type spark --kernel_name spark_bds_1 --user bds

    Diese Beispielskriptausführung mit den angegebenen Parametern erstellt eine Conda-Umgebung conda_jupy_env_1 für die Benutzer-BDS, installiert benutzerdefinierte Abhängigkeiten für conda_jupy_env_1 und erstellt einen Funkenkernel mit dem Namen spark_bds_1. Nach erfolgreichem Abschluss dieses Vorgangs wird der spark_bds_1-Kernel nur in der JupyterHub-UI des bds-Benutzers angezeigt.

Load Balancer und Backend-Set erstellen

Weitere Informationen zum Erstellen von Backend-Sets finden Sie unter Backend-Set für Load Balancer erstellen.

Load Balancer wird erstellt

Weitere Informationen zum Erstellen eines öffentlichen Load Balancers finden Sie unter Load Balancer erstellen. Geben Sie die folgenden Details ein.

  1. Öffnen Sie das Navigationsmenü, und wählen Sie Networking aus. Wählen Sie dann Load Balancer. Load Balancer. Die Seite Load-Balancer wird angezeigt.
  2. Wählen Sie unter Listengeltungsbereich das Compartment aus, in dem sich das Cluster befindet.
  3. Geben Sie im Feld Load-Balancer-Name einen Namen zur Identifizierung des Load Balancers ein. Beispiel: JupyterHub-LoadBalancer.
  4. Wählen Sie im Abschnitt Sichtbarkeitstyp auswählen die Option Öffentlich aus.
  5. Wählen Sie im Abschnitt Öffentliche IP-Adresse zuweisen die Option Reservierte IP-Adresse aus.
  6. Wählen Sie Neue reservierte IP-Adresse erstellen.
  7. Geben Sie im Feld Name öffentliche IP einen Namen ein. Beispiel: jupyterhub-ip
  8. Wählen Sie unter Erstellen in Compartment das Compartment aus, in dem sich das Cluster befindet.
  9. Führen Sie im Abschnitt Networking auswählen die folgenden Schritte aus:
    1. Wählen Sie im Abschnitt Virtuelles Cloud-Netzwerk <Compartment> das vom Cluster verwendete VCN aus.
    2. Wählen Sie im Feld Subnetz in <Compartment> das vom Cluster verwendete Subnetz aus.
  10. Wählen Sie Weiter. Die Seite Backends wählen wird angezeigt.
  11. Wählen Sie unter Load Balancing Policy angeben die Option IP-Hash aus.
    Hinweis

    Fügen Sie derzeit keine Backends hinzu.
  12. Führen Sie im Abschnitt Health Check Policy angeben die folgenden Schritte aus:
    1. Geben Sie in das Feld Port den Wert 8000 ein.
    2. Geben Sie im URL-Pfad (URI) //hub/api ein.
  13. Wählen Sie SSL verwenden aus.
  14. Führen Sie im Abschnitt Zertifikatressource die folgenden Schritte aus:
    1. Wählen Sie im Dropdown-Feld Von Load Balancer verwaltetes Zertifikat aus.
    2. Wählen Sie SSL-Zertifikat einfügen aus.
    3. Kopieren Sie im Feld SSL-Zertifikat ein Zertifikat, und fügen Sie es direkt in dieses Feld ein.
    4. Wählen Sie CA-Zertifikat einfügen aus.
    5. Geben Sie im Feld CA-Zertifikat das Oracle-Zertifikat mit /etc/security/serverKeys/bdsOracleCA.crt ein, das im Cluster vorhanden ist. Für öffentliche Zertifizierungsstellen (CAs) kann dieses Zertifikat direkt von ihrer Website bezogen werden.
    6. (Optional) Wählen Sie Private Key angeben aus.
      1. Wählen Sie Private Key einfügen aus.
      2. Fügen Sie im Feld Private Key einen Private Key direkt in dieses Feld ein.
  15. Wählen Sie Erweiterte Optionen anzeigen aus, um auf weitere Optionen zuzugreifen.
  16. Wählen Sie die Registerkarte Backend-Set aus, und geben Sie den Backend-Setnamen ein. Beispiel: JupyterHub-Backends.
  17. Wählen Sie Sessionpersistenz aus, und wählen Sie Cookiepersistenz für Load Balancer aktivieren aus. Cookies werden automatisch generiert.
  18. Wählen Sie Weiter. Die Seite Listener konfigurieren wird angezeigt. Geben Sie Folgendes ein:
    1. Geben Sie im Feld Listener-Name einen Namen für den Listener ein. Beispiel: JupyterHub-Listener.
    2. Wählen Sie HTTPS für Vom Listener verarbeiteten Traffictyp angeben aus.
    3. Geben Sie im Feld Port angeben, den der Listener auf Ingress-Traffic überwacht den Wert 8000 ein.
    4. Wählen Sie SSL-Zertifikat einfügen aus.
    5. Kopieren Sie im Feld SSL-Zertifikat ein Zertifikat, und fügen Sie es direkt in dieses Feld ein.
    6. Wählen Sie im Dropdown-Feld Von Load Balancer verwaltetes Zertifikat aus.
    7. Wählen Sie CA-Zertifikat einfügen aus.
    8. Geben Sie im Feld CA-Zertifikat das CA-Zertifikat des Clusters ein.
    9. Wählen Sie Private Key angeben aus.
      1. Wählen Sie Private Key einfügen aus.
      2. Fügen Sie im Feld Private Key einen Private Key direkt in dieses Feld ein.
  19. Wählen Sie Weiter, Weiterleiten aus.
Backend-Set konfigurieren

Weitere Informationen zum Erstellen eines öffentlichen Load Balancers finden Sie unter Load Balancer erstellen. Geben Sie die folgenden Details ein.

  1. Öffnen Sie das Navigationsmenü, und wählen Sie Networking aus. Wählen Sie dann Load Balancer. Wählen Sie Load Balancer aus. Die Seite Load Balancer wird angezeigt.
  2. Wählen Sie das Compartment in der Liste aus. Alle Load Balancer in diesem Compartment werden tabellarisch aufgelistet.
  3. Wählen Sie den Load Balancer, dem Sie ein Backend hinzufügen möchten. Die Detailseite des Load Balancers wird angezeigt.
  4. Wählen Sie Backend-Sets aus, und wählen Sie dann das Backend-Set aus, das Sie unter Load Balancer erstellen erstellt haben.
  5. Wählen Sie IP-Adressen aus, und geben Sie die erforderliche private IP-Adresse des Clusters ein.
  6. Geben Sie 8000 für den Port ein.
  7. Wählen Sie Hinzufügen aus.
Backend-Set konfigurieren

Weitere Informationen zum Erstellen eines öffentlichen Load Balancers finden Sie unter Load Balancer erstellen. Geben Sie die folgenden Details ein.

  1. Öffnen Sie einen Browser, und geben Sie https://<loadbalancer ip>:8000 ein.
  2. Wählen Sie das Compartment in der Liste aus. Alle Load Balancer in diesem Compartment werden tabellarisch aufgelistet.
  3. Stellen Sie sicher, dass er zu einem der JupyterHub-Server umgeleitet wird. Um zu prüfen, öffnen Sie eine Terminalsession in der JupyterHub, um zu ermitteln, welcher Knoten erreicht wurde.
Einschränkungen
  • Nach dem Hinzufügen des Knotenvorgangs muss der Clusteradministrator den Load Balancer-Hosteintrag in den neu hinzugefügten Knoten manuell aktualisieren. Gilt für alle Knoten, die dem Cluster hinzugefügt werden. Beispiel: Worker-Knoten, nur Computing und Knoten.
  • Im Falle eines Ablaufs muss das Zertifikat manuell auf Load Balancer aktualisiert werden. Dieser Schritt stellt sicher, dass der Load Balancer keine veralteten Zertifikate verwendet, und vermeidet Health Check-/Kommunikationsfehler bei Backend-Sets. Weitere Informationen finden Sie unter Ablaufendes Load-Balancer-Zertifikat aktualisieren, um abgelaufenes Zertifikat zu aktualisieren.

Trino-SQL-Kerne starten

Der JupyterHub PyTrino-Kernel bietet eine SQL-Schnittstelle, mit der Sie Trino-Abfragen mit JupyterHub SQL ausführen können. Diese Option ist für Big Data Service 3.0.28 oder höher ODH 2.x-Cluster verfügbar.

PyTrino Kernel starten und Trino-Abfragen ausführen
  1. Installieren Sie Trino.
  2. Konfigurieren Sie den Trino-Koordinator und -Port:
    1. Greifen Sie auf Apache Ambari auf zu.
    2. Wählen Sie in der seitlichen Symbolleiste unter Services die Option JupyterHub aus.
    3. Wählen Sie Konfigurationen, Erweitert aus.
    4. Konfigurieren Sie im Abschnitt Advanced Jupyterhub-trino-kernel-configs den Trino Coordinator Hostname und den Trino Port.
  3. Wählen Sie Speichern, und starten Sie JupyterHub neu.
  4. Rufen Sie JupyterHub auf.
  5. Öffnen Sie einen Notizbuchserver. Sie werden zur Launcher-Seite umgeleitet.
  6. Wählen Sie den Kernel PyTrino aus.
  7. Sie können Trino-Abfragen wie folgt im PyTrino-Kernel ausführen:
    • Führen Sie Trino-Beispielabfragen mit %sql <Trino-query> aus, und wählen Sie Ausführen aus.

      Beispiel:

      %sql select custkey, name, phone, acctbal from tpch.sf1.customer limit 10
    • Sie können Python-Logik über dem Abfrageergebnis schreiben. Beispiel:
      result = %sql select custkey, name, phone, acctbal from tpch.sf1.customer limit 10
      
       
      def classify_balance(acctbal):
          if acctbal < 1000:
              return 'Low'
          elif 1000 <= acctbal < 5000:
              return 'Medium'
          else:
              return 'High'
      df = result.DataFrame()
      df['balance_class'] = df['acctbal'].apply(classify_balance)
      print(df)
    • Führen Sie für mehrzeilige Abfragen %%sql aus. Beispiel:
      # Using the %%sql magic command to execute a multi-line SQL query with the limit variable
      
      
      
      top_threshold = 3
       
      %%sql
      SELECT custkey, name, acctbal
      FROM tpch.sf1.customer
      WHERE acctbal > 1000
      ORDER BY acctbal DESC limit {{top_threshold}}
Trino-Sessionparameter festlegen
Trino-Sessionparameter können über die Ambari-UI von JupyterHub konfiguriert werden. Diese Sessionparameter werden auf alle Benutzersessions angewendet.
Weitere Informationen zu Sessionparametern finden Sie unter Properties reference#.
  1. Greifen Sie auf Apache Ambari auf zu.
  2. Wählen Sie in der seitlichen Symbolleiste unter Services die Option JupyterHub aus.
  3. Wählen Sie Konfigurationen, Erweitert aus.
  4. Fügen Sie im Abschnitt Benutzerdefinierte Jupyterhub-trino-kernel-configs die folgenden Sessionparameter hinzu:
    trino_session_params_<SESSION_PARAM> = <VALUE>

    Beispiel: trino_session_params_query_max_planning_time = 1200m.

  5. (Optional) So listen Sie Sessionparameter auf:
    %sql SHOW session
  6. Um Parameter für die aktuelle Notizbuchsession festzulegen, führen Sie folgenden Befehl aus: %sql SET SESSION Beispiel:
    %sql SET SESSION query_max_run_time='2h'
Parameter für zusätzliche Trino-Zugangsdaten festlegen
Zusätzliche Zugangsdatenparameter für Trino, die für den Zugriff auf Objektspeicherdaten erforderlich sind, können über die Ambari-UI von JupyterHub konfiguriert werden.
  1. Greifen Sie auf Apache Ambari auf zu.
  2. Wählen Sie in der seitlichen Symbolleiste unter Services die Option JupyterHub aus.
  3. Konfigurationen, und wählen Sie Erweitert aus.
  4. Fügen Sie im Abschnitt Benutzerdefinierte Jupyterhub-trino-kernel-configs die folgenden zusätzlichen Zugangsdatenparameter hinzu:
    trino_extra_credentials_<BDS_OSS_CLIENT_PARAM> = <VALUE>

    Beispiel: trino_extra_credentials_BDS_OSS_CLIENT_REGION = us-region-1.

Parameter SqlMagic festlegen
Mit SqlMagic-Konfigurationen können Sie das Verhalten und die Darstellung von SQL-Vorgängen, die in Jupyter-Notizbüchern ausgeführt werden, flexibel steuern. Diese Parameter können über die Ambari-UI JupyterHub konfiguriert und auf alle Benutzersessions angewendet werden.

Weitere Informationen zu den SqlMagic-Parametern finden Sie unter https://jupysql.ploomber.io/en/latest/api/configuration.html#changing-configuration.

  1. Greifen Sie auf Apache Ambari auf zu.
  2. Wählen Sie in der seitlichen Symbolleiste unter Services die Option JupyterHub aus.
  3. Wählen Sie Konfigurationen, Erweitert aus.
  4. Fügen Sie im Abschnitt Benutzerdefinierte JupyterHub-sql-magic-configs die folgenden magischen Parameter hinzu:
    SqlMagic.<PARAM> = <VALUE>
    Beispiel:
    SqlMagic.displaycon = False
  5. Um die Liste der SqlMagic-Parameter abzurufen, führen Sie Folgendes aus:
    %config SqlMagic
  6. (Optional) Sie können SqlMagic-Parameter nur für die aktuelle Notizbuchsession festlegen.

    Beispiel:

    %config SqlMagic.displaycon=False