Partager via


Résoudre les problèmes d’accès au stockage du pool Apache Spark Azure Synapse Analytics

S’applique à : Azure Synapse Analytics

Apache Spark est un cadre de traitement parallèle qui prend en charge le traitement en mémoire pour améliorer les performances des applications d’analytique du Big Data. Apache Spark dans Azure Synapse Analytics est l’une des implémentations Microsoft d’Apache Spark dans le cloud. Azure Synapse facilite la création et la configuration d’un pool Apache Spark serverless dans Azure. Les pools Spark dans Azure Synapse sont compatibles avec Stockage Azure et le stockage Azure Data Lake Generation 2. Vous pouvez donc utiliser des pools Spark pour traiter vos données stockées dans Azure.

Si vous rencontrez des problèmes d’accès au stockage de pool, tels que des erreurs « 403 » ou l’échec de l’espace de travail Synapse pour rechercher des services liés, utilisez les conseils fournis pour vous aider à résoudre vos problèmes.

Scénarios non pris en charge

Les cas d’usage suivants ne sont pas pris en charge lorsque vous vous connectez à un compte de stockage à partir d’un pool Synapse Spark :

  • Connexion à un compte de stockage ADLS Gen1
  • Connexion à un compte de stockage ADLS Gen2 avec une identité managée affectée par l’utilisateur
  • Connexion à un compte de stockage ADLS Gen2 qui a :
    • Espace de travail Synapse de réseau virtuel partagé
    • Compte de Stockage avec pare-feu

Problèmes courants et solutions

Error Solution
« errorMessage » :"LSRServiceException est [{"StatusCode » :400,"ErrorResponse » :{"code » :"LSRLinkedServiceFailure »,"message » :"Impossible de trouver le service lié AzureDataLakeStorage1 ; Cette erreur est générée si un espace de travail Synapse est associé à un dépôt Git, Azure DevOps Services ou GitHub. Il est également généré lorsqu’un artefact tel qu’un bloc-notes ou un service lié n’est pas publié.

Publiez manuellement vos modifications de code dans la branche de collaboration sur le service Synapse.
stdout : exception dans le thread "main" org.apache.hadoop.fs.FileAlreadyExistsException : l’opération a échoué : « Ce point de terminaison ne prend pas en charge BlobStorageEvents ni SoftDelete. Désactivez ces fonctionnalités de compte si vous souhaitez utiliser ce point de terminaison. », 409, HEAD, https://< storageaccountname.dfs.core.windows.net/scripts/?upn=false&action=getAccessControl&timeout=90> Vérifiez que le stockage ADLS Gen 2 est configuré en tant que stockage principal.

Pour désactiver SoftDelete, décochez la case Activer la suppression réversible de l’objet blob pour le compte de stockage.

Résolution des problèmes « 403 »

Accès au stockage et accès au compte

  • Pour écrire dans le stockage via un pipeline, l’instance MSI de l’espace de travail Synapse est le principal de sécurité qui exécute toutes les opérations telles que lecture, écriture et suppression sur le stockage.
    • Assurez-vous que le compte MSI de l’espace de travail a le rôle Contributeur aux données blob de stockage pour effectuer toutes les actions.
  • Si vous utilisez Azure Notebooks pour accéder au compte de stockage, utilisez le compte connecté, sauf si vous accédez au stockage via des services liés.
    • Le compte d’utilisateur connecté doit avoir le rôle Contributeur aux données Blob de stockage pour disposer d’un accès et d’autorisations complets.
  • Pour vous connecter au stockage, utilisez le service lié et l’authentification du principal de service. Ensuite, l’application inscrite auprès d’Azure Active doit être affectée à « Contributeur aux données Blob de stockage » sur le stockage Azure.

Pour l’implémentation du contrôle d’accès en fonction du rôle (RBAC) dans le stockage, les détails sont contrôlés au niveau du conteneur. Pour plus d’informations, consultez Modèle de contrôle d’accès dans Azure Data Lake Storage Gen2.

Contrôle d’accès en fonction du rôle Azure

Le contrôle d’accès en fonction du rôle Azure utilise des attributions de rôles pour appliquer des ensembles d’autorisations à des principaux de sécurité tels que le MSI de l’espace de travail Synapse, l’utilisateur connecté ou l’inscription d’application dans l’ID Microsoft Entra. Les rôles tels que Propriétaire, Contributeur, Lecteur et Contributeur de compte de stockage permettent à un principal de sécurité de gérer un compte de stockage.

Listes de contrôle d'accès

Utilisez des listes de contrôle d’accès (ACL) pour appliquer des niveaux détaillés d’accès aux répertoires et aux fichiers.

  • Si des rôles d’accès aux données tels que lecteur de données Blob de stockage ou Contributeur aux données blob de stockage sont trouvés pour le principal de sécurité, une vérification est exécutée pour vérifier si le rôle dispose des autorisations nécessaires pour effectuer des actions telles que l’écriture, la lecture et la suppression. Dans ce cas, le principal de sécurité peut accéder à tous les fichiers et dossiers, en fonction du rôle de conteneur.
    • Il n’existe aucune vérification de liste de contrôle d’accès supplémentaire sur les fichiers ou dossiers.
  • Si aucun rôle d’accès aux données n’est trouvé pour le principal de sécurité au niveau du conteneur de stockage, les vérifications ACL sont exécutées sur les fichiers et dossiers.

Ressources