佈建 Analytics Engine

適用於火花機

在 watsonx.data 中註冊外部 Spark 引擎的選項在此版本中已被廢棄,並將在 2.3 版本中移除。watsonx.data 已包含內建的 Spark 引擎,您可以直接配置和使用,包括 Gluten-accelerated Spark 引擎和原生的 watsonx.data Spark 引擎。

對於 watsonx.data,建議使用 IBM Analytics Engine Spark 來達到下列使用案例:

  1. 將大量資料汲取至 watsonx.data 表格。 您也可以在汲取之前清理及轉換資料。
  2. 加強表格 watsonx.data 效能的表格維護作業
  3. 難以呈現為查詢的複雜分析工作量。

您可以建立 IBM Analytics Engine 實例:

您必須有權存取 IBM Cloud® us-south (達拉斯) 或 eu-de (法蘭克福) 地區。 當您新增地區以佈建 Analytics Engine 實例時,請選擇更接近已佈建 watsonx.data 的地區,以避免資料延遲問題。

從 IBM Cloud® 主控台建立服務實體

您可以使用 IBM Cloud® 主控台來建立實例。

若要建立 IBM Analytics Engine 範例:

  1. 登入 IBM Cloud® 主控台

  2. 按一下 服務,然後選取種類 分析

  3. 搜尋 Analytics Engine,然後按一下磚以開啟服務實例建立頁面。

  4. 選擇更接近您佈建 watsonx.data 以部署服務實例的地區的位置。 目前,us-southeu-de 是唯一支援的地區。

  5. 選取方案。 目前,Standard Serverless for Apache Spark 是唯一支援的無伺服器方案。

  6. 透過輸入您選擇的名稱、選取資源群組並新增標籤來配置實例。

  7. 選擇可用的最新執行時間版本 (例如 3.4 )。 如需其他支援的 Spark 版本,請參閱 支援的 Spark 版本

  8. 從您要用作 Analytics Engine 實例起始目錄 以儲存實例相關資料的帳戶中選取 IBM Cloud Object Storage 實例。

  9. 按一下 建立,以在背景中佈建服務實例。

    新建立的服務會列在 IBM Cloud® 資源清單 中的 服務下。

使用 IBM Cloud® 指令行介面來建立服務實例

若要使用 IBM Cloud® 指令行介面來建立服務實例,請執行下列動作:

  1. 下載並配置 IBM Cloud® CLI。 請遵循 開始使用 IBM Cloud® CLI中的指示。

  2. 設定地區的 API 端點並登入:

    ibmcloud api https://DOMAIN_NAME
    ibmcloud login
    

    參數值:

    • DOMAIN_NAME: 地區的 API 端點。 例如:cloud.ibm.com
  3. 取得帳戶的資源群組清單,並選取其中一個傳回的資源群組作為目標資源群組,以在其中建立 IBM Analytics Engine 無伺服器實例:

    ibmcloud resource groups
    ibmcloud target -g <RESOURCE_GROUP_NAME>
    

    參數值:

    • RESOURCE_GROUP_NAME: 提供與您在佈建 watsonx.data 時指定的名稱相同的名稱,以有效組織。
  4. 建立服務實例:

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

    參數值:

    • SERVICE_INSTANCE_NAME: 指定實例的名稱。
    • PLAN_NAME: 將計劃名稱指定為 plan_name8afde05e-5fd8-4359-a597-946d8432dd45
    • REGION: 指定您想要佈建實例的地區。

    請注意,目前標準無伺服器 Spark 是唯一支援的無伺服器方案,而 us-south 和 eu-de 則是唯一支援的區域。 請選擇更接近您已佈建 watsonx.data的地區。

    • PATH_to JSON 檔案: 包括包含供應參數之 JSON 檔案的路徑。

    例如,就達拉斯地區而言:

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

    您可以為服務實例提供您選擇的任何名稱。 請注意,目前 standard-serverless-spark 是唯一支援的無伺服器方案,而 us-southeu-de 則是唯一支援的地區。

    provision.json 檔案包含您要建立之實例的佈建參數。

    有效負載 JSON 檔案中 IBM Cloud® Object Storage 實例的端點必須是直接端點。 直接端點提供比公開端點更好的效能,並且不會產生任何傳出或傳入頻寬的費用。

    下列是範例 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"
        }
    }
    

    建立實例指令的 IBM Cloud® 回應:

    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
    

    建立實例指令的範例回應如下:

    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
    

    請記下輸出中的實例 ID。 當您呼叫實例管理或 Spark 應用程式管理 API 時,將需要實例 ID。 請參閱 Spark 應用程式 REST API

  5. 追蹤實例就緒狀態

使用資源控制器 REST API 來建立服務實例

IBM Analytics Engine 無伺服器實例必須位於 IBM Cloud® 資源群組中。 作為透過資源控制器 REST API 建立 IBM Analytics Engine 無伺服器實例的第一個步驟,您必須具有現有資源群組 ID 及無伺服器計劃 ID。

如果要使用資源控制器 REST API 來建立服務實例,請執行下列動作:

  1. 登入 IBM Cloud® CLI 並執行下列指令,以取得資源群組 ID:

    ibmcloud resource groups
    

    範例結果:

    Retrieving all resource groups under account <Account details..>
    OK
    Name      ID      Default Group   State
    Default   XXXXX   true            ACTIVE
    
  2. 針對 Apache Spark 方案使用下列資源方案 ID:

    8afde05e-5fd8-4359-a597-946d8432dd45
    
  3. 取得 IAM 記號。 如需指示,請參閱 步驟

  4. 使用資源控制器 REST API 來建立實例:

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

    provision.json 檔案包含您要建立之實例的佈建參數。 如需有效負載中供應參數的說明,請參閱 無伺服器實例中的架構及概念

    以下是 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. 追蹤實例就緒狀態

如需用於建立實例之資源控制器 REST API 的相關資訊,請參閱 建立(佈建)新的資源實例

追蹤實例備妥

若要在新建立的無伺服器實例上執行應用程式,實例必須處於 作用中 狀態。

若要追蹤實例就緒狀態,請執行下列動作:

  1. 輸入下列指令:
    curl -X GET https://api.us-south.ae.cloud.ibm.com/v3/analytics_engines/{instance_id} -H "Authorization: Bearer $token"
    
    範例回應:
    {
      "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. 檢查 state 屬性的值。 它必須是 作用中,您才能開始在實例中執行應用程式。

進一步瞭解

佈建無伺服器實例時,請遵循建議的 最佳作法