重要说明:

IBM Cloud Pak® for Data 4.7 版本将于 2025 年 7 月 31 日结束支持(EOS)。 欲了解更多信息,请参阅 IBM Cloud Pak for Data 版本 4.X 的停止服务公告

在 IBM Cloud Pak for Data 4.7 版本支持结束之前,升级到 IBM Software Hub 5.1 版本。 更多信息,请参阅 IBM Software Hub 版本 5.1 文档中的升级 IBM Software Hub。

无法提交概要文件作业或预览资产 (Watson Knowledge Catalog)

如果要对目录中的资产进行概要分析,或者项目失败,那么可能会迂到以下错误: FAILED TO SUBMIT JOB: Job failed to start

此外,如果您尝试在应用数据保护规则时预览资产,那么可能会迂到错误: An error occurred attempting to preview this asset

这些错误可能是用于剖析和预览的 IBM Analytics Engine powered by Apache Spark 实例出现问题所致。 要检查 Analytics Engine 实例并最终解决问题,请完成以下步骤:

  1. 以集群管理员身份登录到 Red Hat OpenShift 集群:

    oc login <OpenShift_URL:port>
    
  2. 登录到概要分析 pod:

    a. 通过运行以下命令来标识概要分析 pod:

    oc get pod | grep wdp-profiling
    

    此命令可返回 Pod 列表。 选择名称前缀与 wdp-profiling完全对应的 pod。

    b. 使用以下命令登录到此 pod:

    oc rsh <podName>
    

    示例:oc rsh wdp-profiling-d989b575b-v85wx

  3. 完成以下检查:

    • 如果在环境中启用了保险库,请转至 /etc/.secrets 目录,并确保 INSTANCE_API_KEY 和 ANALYTICS_ENGINE_INSTANCE_ID 私钥文件可用。

      要获取 INSTANCE_API_KEY 和 ANALYTICS_ENGINE_INSTANCE_ID 值,请运行以下命令:

      cat /etc/.secrets/INSTANCE_API_KEY
      
      cat /etc/.secrets/ANALYTICS_ENGINE_INSTANCE_ID
      
    • 如果未在环境中启用保险库,请检查以下环境变量并确保设置了值:

      • 安装 NCE_API_KEY
      • 安装 NCE_USER
      • ANALYTICS_ENGINE_INSTANCE_ID

      使用以下命令:

      env | grep -i instance
      

      输出应类似于以下示例:

      INSTANCE_API_KEY=UJQzjcf6HJcR6IAUilR3fYu3qbvPoCnVX6mc1eN6
      INSTANCE_USER=__internal_profiler__
      ANALYTICS_ENGINE_INSTANCE_ID=1654844464492037
      

    所有这些环境变量或私钥文件都必须可用。 否则,安装会出现严重问题。

  4. 为实例用户生成 API 令牌:

    curl -k -sS -X POST -H 'Content-Type: application/json' -d '{"username":"<INSTANCE_USER>","api_key":"<INSTANCE_API_KEY>"}' https://<CPDHost>/icp4d-api/v1/authorize
    

    此命令返回带有令牌的 JSON 对象。

  5. 在返回的 JSON 中查找关键字 token 。 复制该属性的值,并使用命令 export TOKEN=<token>将其导出到变量 TOKEN。

  6. 获取实例详细信息并检查实例是否处于 RUNNING 状态:

    curl -k -sS -X GET https://<CPDHost>/zen-data-ui/v3/service_instances/<ANALYTICS_ENGINE_INSTANCE_ID>?include_service_status=true --header 'Accept: application/json' --header "Authorization: Bearer $TOKEN"
    

    响应应该类似于以下示例:

    {"service_instance":{"addon_type":"spark","addon_version":"4.5.0","connection_info":{"History server endpoint":"$HOST/v2/spark/v3/instances/f32a7728-eb57-4300-a5b4-bb0f772b9964/spark_history_server","Spark jobs V2 endpoint":"$HOST/ae/spark/v2/f32a7728-eb57-4300-a5b4-bb0f772b9964/v2/jobs","Spark jobs V3 endpoint":"$HOST/v2/spark/v3/instances/f32a7728-eb57-4300-a5b4-bb0f772b9964/spark/applications","Spark kernel endpoint":"$HOST/v2/spark/ae/f32a7728-eb57-4300-a5b4-bb0f772b9964/jkg/api/kernels","View history server":"$HOST/v2/spark/v3/instances/f32a7728-eb57-4300-a5b4-bb0f772b9964/spark_history_ui/"},"created_at":"2022-06-10T07:01:04.502057Z","display_name":"ProfHbIntrnl","id":"1654844464492037","instance_identifiers":null,"metadata":{"volumeName":"wkc::ProfStgIntrnl"},"misc_data":{},"namespace":"wkc","owner_uid":"1000331001","owner_username":"__internal_profiler__","parameters":{"file_server":{"start":true},"storageClass":"managed-nfs-storage","storageSize":"5Gi","volumeName":"wkc::ProfStgIntrnl"},"provision_status":"PROVISIONED","resources":{},"roles":["Admin"],"updated_at":"2022-07-22T06:10:16.092222Z","zen_service_instance_info":{"docker_registry_prefix":"icr.io/cpopen/cpfs"}},"services_status":"RUNNING"}
    

    关键字 services_status 的值应该为 RUNNING。

    但是,如果 GET 调用返回 service_not_found 异常,那么 Analytics Engine 实例不再可用。 在这种情况下,请继续执行以下步骤来解决此问题。 否则,请跳过其余步骤。

  7. 列出所有服务实例。 如果在步骤 4 中获取的令牌仍然有效,那么可以使用此令牌。 令牌已到期,请生成新令牌并按该步骤中所述将其导出。

    curl -k -sS -X GET https://<CPDHost>/zen-data-ui/v3/service_instances?include_service_status=true --header 'Accept: application/json' --header "Authorization: Bearer $TOKEN"
    

    将返回一个 JSON 对象,其中列出 2 实例的最大详细信息: 服务卷实例和 Analytics Engine 实例。 如果没有可用的服务实例,那么 JSON 对象为空。

    • 如果找不到服务卷实例,请使用以下 cURL 命令进行创建。 根据需要替换样本有效内容中的值:

      curl -k -sS -X POST https://<CPDHost>/zen-data-ui/v3/service_instances --header 'Accept: application/json' --header "Authorization: Bearer $TOKEN" --header 'Content-Type: application/json' -d ' {"addon_type":"volumes","display_name":"<volumeNameOfYourChoice>","namespace":"${PROJECT_CPD_INST_OPERANDS}","addon_version":"-","create_arguments":{"resources":{},"parameters":{"storageClass":"managed-nfs-storage","storageSize":"50Gi","volumeName":"${PROJECT_CPD_INST_OPERANDS}::<volumeNameOfYourChoice>","file_server":{"start":true}},"description":"","metadata":{"storageClass":"managed-nfs-storage","storageSize":"50Gi","volumeName":"${PROJECT_CPD_INST_OPERANDS}::<volumeNameOfYourChoice>","file_server":{"start":true}},"owner_username":""},"pre_existing_owner":false,"transientFields":{}}'
      

      此命令将创建服务卷实例并在响应中返回其标识。 记下服务卷实例标识。

    • 如果找不到 Analytics Engine 实例,请使用以下 cURL 命令创建该实例。 根据需要替换样本有效内容中的值:

      curl -k -sS -X POST https://<CPDHost>/zen-data-ui/v3/service_instances --header 'Accept: application/json' --header "Authorization: Bearer $TOKEN" --header 'Content-Type: application/json' -d '{"addon_type":"spark","display_name":"<IAE_INSTANCE_NameOfYourChoice>","namespace":"${PROJECT_CPD_INST_OPERANDS}","addon_version":"<spark_version>","create_arguments":{"resources":{},"parameters":{"storageClass":"managed-nfs-storage","storageSize":"50Gi","volumeName":"${PROJECT_CPD_INST_OPERANDS}::<volumeNameOfYourChoice>","file_server":{"start":true}},"description":"","metadata":{"storageClass":"managed-nfs-storage","storageSize":"50Gi","volumeName":"${PROJECT_CPD_INST_OPERANDS}::<volumeNameOfYourChoice>","file_server":{"start":true}},"owner_username":""},"pre_existing_owner":false,"transientFields":{}}'
      

      此命令创建 Analytics Engine 实例并将其标识作为响应返回。 记下此标识。

  8. 更新 wdp-profilingdp-transform 部署以使用您在上一步中创建的新 Analytics Engine 实例。

    • 如果在您的环境中启用了保险库,请完成以下步骤:

      1. 浏览至 /etc/.secrets 目录。
      2. 编辑 ANALYTICS_ENGINE_INSTANCE_ID 密钥文件并更新 iae_instance_id 密钥的值。
      3. 保存您的更改。

      要应用更改,请重新启动 wdp-profilingdp-transform pod。

    • 如果未在环境中启用保险库,请完成以下步骤:

      1. 对实例标识进行编码:

        echo -n '<instance_id>' | base64
        
      2. 编辑 wdp-profiling-iae-secrets 私钥:

        oc edit secret wdp-profiling-iae-secrets
        
      3. 使用 base64-encoded 值更新 iae_instance_id 条目的值:

        apiVersion: v1
        data:
          iae_instance_id: <base64-encoced value>
          iae_usermgmt_apikey: <apikey>
        kind: Secret
        
      4. 通过运行以下命令来重新启动 wdp-profiling pod具有所需副本数:

        oc scale deployment wdp-profiling --replicas=0
        oc scale deployment wdp-profiling --replicas=<n>
        
      5. 通过运行以下命令来重新启动 dp-transform pod具有所需副本数:

        oc scale deployment dp-transform --replicas=0
        oc scale deployment dp-transform --replicas=<n>
        
      6. 保存您的更改。

      已更新部署。 刷新 pod 后,新的 Analytics Engine 实例将用于概要分析和预览。

父主题: 对 Watson Knowledge Catalog