Bereitstellung von Analytics Engine

Gilt für: Funkenmotor

Die Option, externe Spark-Engines in watsonx.data zu registrieren, ist in dieser Version veraltet und wird in Version 2.3 entfernt. watsonx.data enthält bereits integrierte Spark-Engines, die Sie direkt bereitstellen und verwenden können, darunter die Gluten-beschleunigte Spark-Engine und die native watsonx.data Spark-Engine.

Es wird empfohlen, für watsonx.data IBM Analytics Engine Spark zu verwenden, um die folgenden Anwendungsfälle zu erreichen:

  1. Aufnahme großer Datenmengen in watsonx.data-Tabellen. Sie können Daten auch vor der Aufnahme bereinigen und transformieren.
  2. Tabellenwartungsoperation zur Verbesserung der Leistung der Tabelle watsonx.data
  3. Komplexe Analyseworkloads, die schwierig als Abfragen darzustellen sind.

Sie können eine IBM Analytics Engine-Instanz erstellen:

Sie müssen Zugriff auf die IBM Cloud®-Region 'us-south' (Dallas) oder die Region 'eu-de' (Frankfurt) haben. Wenn Sie eine Region hinzufügen, um eine Analytics Engine-Instanz bereitzustellen, wählen Sie eine Region aus, die näher an der Region liegt, in der Sie watsonx.data bereitgestellt haben, um Datenlatenzprobleme zu vermeiden.

Erstellen einer Dienstinstanz über die Konsole IBM Cloud®

Sie können eine Instanz über die Konsole IBM Cloud® erstellen.

Gehen Sie wie folgt vor, um eine IBM Analytics Engine-Instanz zu erstellen:

  1. Melden Sie sich an der IBM Cloud®-Konsolean.

  2. Klicken Sie auf Services und wählen Sie die Kategorie Analytics.

  3. Suchen Sie nach Analytics Engine und klicken Sie dann auf die Kachel, um die Seite zur Erstellung von Dienstinstanzen zu öffnen.

  4. Wählen Sie den Standort aus, der näher an der Region liegt, in der Sie watsonx.data für die Bereitstellung der Serviceinstanz bereitgestellt haben. Zurzeit sind us-south und eu-de die einzigen unterstützten Regionen.

  5. Wählen Sie einen Plan aus. Derzeit ist Standard Serverless für Apache Spark der einzige unterstützte serverunabhängige Plan.

  6. Konfigurieren Sie die Instanz, indem Sie einen Namen Ihrer Wahl eingeben, eine Ressourcengruppe auswählen und Tags hinzufügen.

  7. Wählen Sie die neueste verfügbare Laufzeitversion aus (z. B. 3.4 ). Weitere unterstützte Spark-Versionen finden Sie unter "Unterstützte Spark-Version ".

  8. Wählen Sie die Object Storage-Instanz IBM Cloud in Ihrem Konto aus, die Sie als Ausgangsverzeichnis für die Analytics Engine -Instanz verwenden wollen, um instanzbezogene Daten zu speichern.

  9. Klicken Sie auf Erstellen , um die Serviceinstanz im Hintergrund bereitzustellen.

    Der neu erstellte Dienst wird in Ihrer Ressourcenliste IBM Cloud® unter Dienste aufgeführt.

Serviceinstanz über die Befehlszeilenschnittstelle von IBM Cloud® erstellen

So erstellen Sie eine Dienstinstanz mit Hilfe der Befehlszeilenschnittstelle IBM Cloud®:

  1. Laden Sie die IBM Cloud®-CLI herunter und konfigurieren Sie sie. Befolgen Sie die Anweisungen in Einführung in die IBM Cloud® -CLI.

  2. Legen Sie den API-Endpunkt für Ihre Region fest und melden Sie sich an:

    ibmcloud api https://DOMAIN_NAME
    ibmcloud login
    

    Parameterwert:

    • DOMAIN_NAME: Der API-Endpunkt für Ihre Region. Zum Beispiel, cloud.ibm.com
  3. Rufen Sie die Liste der Ressourcengruppen für Ihr Konto ab und wählen Sie eine der zurückgegebenen Ressourcengruppen als Zielressourcengruppe aus, in der die serverlose Instanz IBM Analytics Engine erstellt werden soll:

    ibmcloud resource groups
    ibmcloud target -g <RESOURCE_GROUP_NAME>
    

    Parameterwert:

    • RESOURCE_GROUP_NAME: Geben Sie denselben Namen an, den Sie bei der Bereitstellung von watsonx.data für eine effiziente Organisation angegeben haben
  4. Erstellen Sie eine Serviceinstanz:

    ibmcloud resource service-instance-create <SERVICE_INSTANCE_NAME> ibmanalyticsengine <PLAN_NAME> <REGION> -p @<PATH_to JSON file with cluster parameters>
    

    Parameterwert:

    • SERVICE_INSTANCE_NAME: Namen für die Instanz angeben.
    • PLANNAME: Geben Sie den Plannamen als plan_name8afde05e-5fd8-4359-a597-946d8432dd45 an.
    • REGION: Geben Sie die Region an, in der Sie die Instanz bereitstellen wollen.

    Beachten Sie, dass derzeit nur standard-serverless-spark unterstützt wird und us-south und eu-de die einzigen unterstützten Regionen sind. Wählen Sie eine Region näher an der Region aus, in der Sie watsonx.databereitgestellt haben.

    • PATH_to JSON-Datei: Geben Sie den Pfad zu der JSON-Datei an, die die Bereitstellungsparameter enthält.

    Zum Beispiel für die Region Dallas:

    ibmcloud resource service-instance-create MyServiceInstance ibmanalyticsengine standard-serverless-spark us-south -p @provision.json
    

    Sie können der Serviceinstanz einen beliebigen Namen geben. Beachten Sie, dass derzeit nur standard-serverless-spark unterstützt wird und us-south und eu-de die einzigen unterstützten Regionen sind.

    Die Datei provision.json enthält die Provisioning-Parameter für die Instanz, die Sie erstellen möchten.

    Der Endpunkt für Ihre IBM Cloud® Object Storage-Instanz in der JSON-Nutzdatendatei muss der direkte Endpunkt sein. Direkte Endpunkte bieten eine bessere Leistung als öffentliche Endpunkte und es fallen keine Gebühren für ausgehende oder eingehende Bandbreite an.

    Nachfolgend finden Sie eine Beispieldatei provision.json.

    {
      "default_runtime": {
        "spark_version": "3.4"
        },
      "instance_home": {
        "region": "us-south",
        "endpoint": "https://s3.direct.us-south.cloud-object-storage.appdomain.cloud",
        "hmac_access_key": "<your-hmac-access-key",
        "hmac_secret_key": "<your-hmac-secret-key"
        },
      "default_config": {
        "key1": "value1",
        "key2": "value2"
        }
    }
    

    Die Antwort IBM Cloud® auf den Befehl zum Erstellen einer Instanz:

    Creating service instance MyServiceInstance in resource group Default of account <your account name> as <your user name>...
    OK
    Service instance MyServiceInstance was created.
    
    Name:                MyServiceInstance
    ID:                  crn:v1:staging:public:ibmanalyticsengine:us-south:a/d628eae2cc7e4373bb0c9d2229f2ece5:1e32e***-afd9-483a-b1**-724ba5cf4***::
    GUID:                1e32e***-afd9-483a-b1**-724ba5cf4***
    Location:            us-south
    State:               provisioning
    Type:                service_instance
    Sub Type:
    Service Endpoints:   public
    Allow Cleanup:       false
    Locked:              false
    Created at:          2021-11-29T07:20:40Z
    Updated at:          2021-11-29T07:20:42Z
    Last Operation:
                        Status    create in progress
                        Message   Started create instance operation
    

    Die Beispielantwort auf den Befehl create instance lautet:

    Creating service instance MyServiceInstance in resource group Default of account <your account name> as <your user name>...
    OK
    Service instance MyServiceInstance was created.
    
    Name:                MyServiceInstance
    ID:                  crn:v1:staging:public:ibmanalyticsengine:us-south:a/d628eae2cc7e4373bb0c9d2229f2ece5:1e32e***-afd9-483a-b1**-724ba5cf4***::
    GUID:                1e32e***-afd9-483a-b1**-724ba5cf4***
    Location:            us-south
    State:               provisioning
    Type:                service_instance
    Sub Type:
    Service Endpoints:   public
    Allow Cleanup:       false
    Locked:              false
    Created at:          2021-11-29T07:20:40Z
    Updated at:          2021-11-29T07:20:42Z
    Last Operation:
                    Status    create in progress
                    Message   Started create instance operation
    

    Notieren Sie die Instanz-ID aus der Ausgabe. Sie benötigen die Instanz-ID, wenn Sie APIs für das Instanzmanagement oder das Spark-Anwendungsmanagement aufrufen. Siehe Spark-Anwendungs-REST-API.

  5. Überwachung der Instanzbereitschaft.

Erstellen einer Dienstinstanz mit Hilfe der REST-API des Ressourcen-Controllers

Eine serverunabhängige IBM Analytics Engine -Instanz muss sich in einer IBM Cloud® -Ressourcengruppe befinden. Als ersten Schritt zur Erstellung einer IBM Analytics Engine serverlosen Instanz über die REST-API des Ressourcen-Controllers müssen Sie die ID der Ressourcengruppe und die ID des serverlosen Plans zur Hand haben.

So erstellen Sie eine Dienstinstanz mit Hilfe der REST-API des Ressourcencontrollers:

  1. Ermitteln Sie die ID der Ressourcengruppe, indem Sie sich bei der IBM Cloud® CLI anmelden und den folgenden Befehl ausführen:

    ibmcloud resource groups
    

    Beispielergebnis:

    Retrieving all resource groups under account <Account details..>
    OK
    Name      ID      Default Group   State
    Default   XXXXX   true            ACTIVE
    
  2. Verwenden Sie die folgende Ressourcenplan-ID für den Plan "Standard Serverless for Apache Spark":

    8afde05e-5fd8-4359-a597-946d8432dd45
    
  3. Rufen Sie das IAM-Token ab. Entsprechende Anweisungen finden Sie unter Schritte.

  4. Erstellen Sie eine Instanz mit Hilfe der REST-API des Resource Controllers:

    curl -X POST https://resource-controller.cloud.ibm.com/v2/resource_instances/
    --header "Authorization: Bearer $token" -H 'Content-Type: application/json' -d @provision.json
    

    Die Datei provision.json enthält die Provisioning-Parameter für die Instanz, die Sie erstellen möchten. Eine Beschreibung der Bereitstellungsparameter in den Nutzdaten finden Sie in Architektur und Konzepte in serverunabhängigen Instanzen .

    Nachfolgend finden Sie ein Beispiel für die Datei provision.json.

    {
      "name": "your-service-instance-name",
      "resource_plan_id": "8afde05e-5fd8-4359-a597-946d8432dd45",
      "resource_group": "resource-group-id",
      "target": "us-south",
      "parameters": {
        "default_runtime": {
          "spark_version": "3.4"
            },
            "instance_home": {
              "region": "us-south",
              "endpoint": "s3.direct.us-south.cloud-object-storage.appdomain.cloud",
              "hmac_access_key": "your-access-key",
              "hmac_secret_key": "your-secret-key"
              }
        }
    }
    
  5. Überwachung der Instanzbereitschaft.

Weitere Informationen zur REST-API des Ressourcencontrollers für die Erstellung einer Instanz finden Sie unter Neue Ressourceninstanz erstellen (bereitstellen).

Überwachung der Instanzbereitschaft

Um Anwendungen auf einer neu erstellten serverlosen Instanz auszuführen, muss sich die Instanz im aktiven Zustand befinden.

So verfolgen Sie die Instanzbereitschaft:

  1. Geben Sie den folgenden Befehl ein:
    curl -X GET https://api.us-south.ae.cloud.ibm.com/v3/analytics_engines/{instance_id} -H "Authorization: Bearer $token"
    
    Beispielantwort:
    {
      "id": "dc0e****-eab2-4t9e-9441-56620949****",
      "state": "created",
      "state_change_time": "2021-04-21T04:24:01Z",
      "default_runtime": {
        "spark_version": "3.4",
        "instance_home": {
          "provider": "ibm-cos",
          "type": "objectstore",
          "region": "us-south",
          "endpoint": "https://s3.direct.us-south.cloud-object-storage.appdomain.cloud",
          "bucket": "ae-bucket-do-not-delete-dc0e****-eab2-4t**-9441-566209499546",
          "hmac_access_key": "eH****g=",
          "hmac_secret_key": "4d********76"
        },
        "default_config": {
          "spark.driver.memory": "4g",
          "spark.driver.cores": 1
        }
      }
    }
    
  2. Überprüfen Sie den Wert des Attributs state. Sie muss aktiv sein, bevor Sie mit der Ausführung von Anwendungen in der Instanz beginnen können.

Weitere Informationen

Befolgen Sie bei der Bereitstellung serverloser Instanzen die empfohlenen Best Practices.