Impossible de soumettre des travaux de profilage ou de prévisualiser des actifs ( IBM watsonx.data intelligence )
Si vous profilez une ressource dans un catalogue ou si un projet échoue, vous pouvez rencontrer l'erreur suivante : FAILED TO SUBMIT JOB: Job failed to start.
En outre, si vous essayez de prévisualiser une ressource lorsque des règles de protection des données sont appliquées, vous risquez de rencontrer l'erreur suivante : An error occurred attempting to preview this asset.
Ces erreurs peuvent être dues à un problème avec l'instance de IBM Analytics Engine powered by Apache Spark utilisée pour le profilage et la prévisualisation. Pour vérifier l'instance Analytics Engine et éventuellement résoudre le problème, suivez les étapes suivantes :
Connectez-vous à votre cluster Red Hat OpenShift en tant qu'administrateur du cluster :
oc login <OpenShift_URL:port>Connectez-vous au module de profilage :
a. Identifiez le pod de profilage en exécutant la commande suivante :
oc get pod | grep wdp-profilingCette commande peut renvoyer une liste de pods. Sélectionnez le pod où le préfixe du nom correspond exactement à
wdp-profiling.b. Connectez-vous à ce module à l'aide de la commande suivante :
oc rsh <podName>Exemple :
oc rsh wdp-profiling-d989b575b-v85wxComplétez ces vérifications :
Si les espaces de stockage sont activés dans votre environnement, allez dans le répertoire
/etc/.secretset assurez-vous que les fichiers secrets INSTANCE_API_KEY et ANALYTICS_ENGINE_INSTANCE_ID sont disponibles.Pour obtenir les valeurs INSTANCE_API_KEY et ANALYTICS_ENGINE_INSTANCE_ID, exécutez les commandes suivantes :
cat /etc/.secrets/INSTANCE_API_KEYcat /etc/.secrets/ANALYTICS_ENGINE_INSTANCE_IDSi les chambres fortes ne sont pas activées dans votre environnement, vérifiez les variables d'environnement suivantes et assurez-vous qu'elles ont des valeurs définies :
- CLÉ_API_INSTANCE
- INSTANCE_UTILISATEUR
- IDENTIFICATEUR_INSTANCE_MOTEUR_ANALYTIQUE
Utilisez la commande suivante :
env | grep -i instanceLe résultat devrait ressembler à cet exemple :
INSTANCE_API_KEY=UJQzjcf6HJcR6IAUilR3fYu3qbvPoCnVX6mc1eN6 INSTANCE_USER=__internal_profiler__ ANALYTICS_ENGINE_INSTANCE_ID=1654844464492037
Toutes ces variables d'environnement ou fichiers secrets doivent être disponibles. Sinon, il y a un sérieux problème avec l'installation.
Générer un jeton API pour l'utilisateur de l'instance :
curl -k -sS -X POST -H 'Content-Type: application/json' -d '{"username":"<INSTANCE_USER>","api_key":"<INSTANCE_API_KEY>"}' https://<CPDHost>/icp4d-api/v1/authorizeCette commande renvoie un objet JSON contenant le jeton.
Recherchez le mot-clé
tokendans le JSON renvoyé. Copiez la valeur de cette propriété et exportez-la dans une variable TOKEN en utilisant la commandeexport TOKEN=<token>.Obtenir les détails de l'instance et vérifier si l'instance est dans l'état
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"La réponse devrait ressembler à cet exemple :
{"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"}La valeur du mot-clé
services_statusdoit être RUNNING.Toutefois, si l'appel GET renvoie une exception
service_not_found, l'instance Analytics Engine n'est plus disponible. Dans ce cas, suivez les étapes suivantes pour résoudre le problème. Si ce n'est pas le cas, ignorez les autres étapes.Liste de toutes les instances de service. Si le jeton obtenu à l'étape 4 est encore valide, vous pouvez l'utiliser. Si le jeton a expiré, générez-en un nouveau et exportez-le comme décrit dans cette étape.
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"Un objet JSON est renvoyé avec la liste des détails pour 2 instances au maximum : pour l'instance de volume de service et pour l'instance Analytics Engine. Si aucune instance de service n'est disponible, l'objet JSON est vide.
Si aucune instance de volume de service n'est trouvée, créez-la à l'aide de la commande suivante : cURL. Remplacer les valeurs dans l'échantillon de charge utile comme il convient :
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":{}}'Cette commande crée une instance de volume de service et renvoie son identifiant dans la réponse. Notez l'identifiant de l'instance du volume de service.
Si aucune instance Analytics Engine n'est trouvée, créez-la en utilisant la commande cURL suivante. Remplacer les valeurs dans l'échantillon de charge utile comme il convient :
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":{}}'Cette commande crée une instance Analytics Engine et renvoie son identifiant en réponse. Notez ce numéro d'identification.
Mettez à jour les déploiements
wdp-profilingetdp-transformpour qu'ils fonctionnent avec la nouvelle instance Analytics Engine que vous avez créée à l'étape précédente.Si les chambres fortes sont activées dans votre environnement, procédez comme suit :
- Naviguez jusqu'au répertoire
/etc/.secrets. - Modifiez le fichier secrets ANALYTICS_ENGINE_INSTANCE_ID et mettez à jour la valeur de la clé
iae_instance_id. - Enregistrez vos modifications.
Pour appliquer les modifications, redémarrez les modules
wdp-profilingetdp-transform.- Naviguez jusqu'au répertoire
Si les chambres fortes ne sont pas activées dans votre environnement, procédez comme suit :
Encoder l'identifiant de l'instance :
echo -n '<instance_id>' | base64Modifiez le secret
wdp-profiling-iae-secrets:oc edit secret wdp-profiling-iae-secretsMettre à jour la valeur de l'entrée
iae_instance_idavec la valeur base64-encoded :apiVersion: v1 data: iae_instance_id: <base64-encoced value> iae_usermgmt_apikey: <apikey> kind: SecretRedémarrez le pod
wdp-profilingen exécutant ces commandes en remplaçantavec le nombre requis de répliques : oc scale deployment wdp-profiling --replicas=0 oc scale deployment wdp-profiling --replicas=<n>Redémarrez le pod
dp-transformen exécutant ces commandes en remplaçantavec le nombre requis de répliques : oc scale deployment dp-transform --replicas=0 oc scale deployment dp-transform --replicas=<n>Enregistrez vos modifications.
Le déploiement est mis à jour. Après le rafraîchissement des pods, la nouvelle instance Analytics Engine est utilisée pour le profilage et la prévisualisation.