Bibliotheksgruppe für Python-Paketinstallation erstellen

Eine Bibliotheksgruppe ist eine Sammlung von Bibliotheken, die in Spark-Anwendungen erstellt und referenziert werden können, die die Bibliotheken verarbeiten. Die Bibliotheksgruppe wird im Instanzausgangsspeicher gespeichert, der der Instanz zum Zeitpunkt der Instanzerstellung zugeordnet ist.

Derzeit können Sie Python-Pakete nur über condaoder pip installinstallieren.

Analytics Engine bündelt eine Spark-Anwendung namens customize_instance_app.py, die Sie ausführen, um eine Bibliotheksgruppe mit Ihren angepassten Paketen zu erstellen, und kann von Ihren Spark-Anwendungen genutzt werden.

Voraussetzungen: Zum Erstellen einer Bibliotheksgruppe müssen Sie über die Berechtigungen zum Übergeben einer Spark-Anwendung verfügen. Siehe Benutzerberechtigungen.

So erstellen Sie eine Bibliotheksgruppe:

  1. Bereiten Sie eine JSON-Datei wie die folgende vor:

    {
      "library_set": {
        "action": "add",
        "name": "my_library_set",
        "libraries": {
          "conda": {
            "python": {
              "packages": ["numpy"]
              }
          }
      }
      }
    }
    

    Die Beschreibung der JSON-Attribute lautet wie folgt:

    • "library_set": Das JSON-Objekt der höchsten Ebene, das die Bibliotheksgruppe definiert
    • "action": Gibt die Aktion an, die für die Bibliotheksgruppe ausgeführt werden soll Zum Erstellen einer Bibliotheksgruppe wird "add"verwendet. Derzeit wird nur die Option "add"unterstützt.
    • "name": Gibt den Namen an, mit dem die Bibliotheksgruppe identifiziert wird. Die erstellte Bibliotheksgruppe wird in einer Datei mit diesem Namen in der IBM Cloud Object Storage -Instanz gespeichert, die Sie als instance homeangegeben haben. Wichtig: Wenn Sie mehrere Bibliotheksgruppen erstellen, müssen Sie für jede Gruppe eindeutige Namen verwenden. Andernfalls überschreiben sie sich gegenseitig.
    • "libraries": Definiert eine Gruppe von Bibliotheken. In diesem Abschnitt können Sie eine oder mehrere Bibliotheken angeben. Dieses Element hat ein untergeordnetes JSON-Objekt pro Bibliothekspaketmanager. Derzeit werden nur die Paketmanager "conda"und "pip"unterstützt. Verwenden Sie "pip"oder "conda", um Python-Pakete zu installieren.
    • "conda": Bibilotheks-Paketmanager.
    • "python": Die Bibliothekssprache. Derzeit wird nur Python unterstützt.
    • "packages": Liste der zu installierenden Pakete. Um eine bestimmte Version eines Pakets zu installieren, übergeben Sie die Version im folgenden Format: package_name==version.
  2. Rufen Sie die IAM-Token ab.

  3. Übergeben Sie die JSON-Datei im folgenden REST-API-Aufruf als "arguments". Stellen Sie sicher, dass Sie die Anführungszeichen bei der Übergabe an den REST-API-Aufruf wie erforderlich vermeiden.

    curl -X POST https://api.us-south.ae.cloud.ibm.com/v3/analytics_engines/<instance_id>/spark_applications --header "Authorization: Bearer <IAM token>" -H "content-type: application/json" -d @createLibraryset.json
    

    Beispiel für createLibraryset.json:

    {
      "application_details": {
        "application": "/opt/ibm/customization-scripts/customize_instance_app.py",
        "arguments": ["{\"library_set\":{\"action\":\"add\",\"name\":\"my_library_set\",\"libraries\":{\"conda\":{\"python\":{\"packages\":[\"numpy\"]}}}}}"]
        }
    }
    

    Wichtig: Sie müssen alle Anführungszeichen in den Zeichenfolgen vermeiden, die als Anwendungsargumente übergeben werden.

    Wenn die Anwendung akzeptiert wird, erhalten Sie eine Antwort wie die folgende:

    {
      "id": "87e63712-a823-4aa1-9f6e-7291d4e5a113",
      "state": "accepted"
    }
    

    Wenn der Status in FINISHED geändert wird, ist die Erstellung der Bibliotheksgruppe abgeschlossen.

  4. Verfolgen Sie den Status der Anwendung, indem Sie die REST-API für Anwendungsstatus aufrufen. Siehe Status einer Anwendung abrufen.