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 une infrastructure de traitement parallèle qui prend en charge le traitement en mémoire pour améliorer les performances des applications analytiques 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 Stockage Azure Data Lake Génération 2. Par conséquent, vous pouvez 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 à trouver 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’utilisation suivants ne sont pas pris en charge lorsque vous vous connectez à un compte de stockage à partir d’un pool Synapse Spark :

  • Connexion au compte de stockage ADLS Gen 1
  • Connexion au compte de stockage ADLS Gen2 avec une identité managée affectée par l’utilisateur
  • Connexion au compte de stockage ADLS Gen 2 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 is [{"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 notebook 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 ou 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é comme stockage principal.

Pour désactiver SoftDelete, décochez la case Activer la suppression réversible d’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 par le biais d’un pipeline, synapse Workspace MSI est le principal de sécurité qui exécute les opérations telles que Lecture, Écriture et Suppression sur le stockage.
    • Vérifiez que le compte MSI de l’espace de travail a le rôle Contributeur aux données Blob du 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 du 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 se voir attribuer un « Contributeur aux données Blob du 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 aux principaux de sécurité, tels que le registre MSI de l’espace de travail Synapse, l’utilisateur connecté ou le registre d’application dans le Microsoft Entra ID. 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’accès détaillés aux répertoires et aux fichiers.

  • Si des rôles d’accès aux données tels que Lecteur de données Blob du stockage ou Contributeur aux données Blob du stockage sont trouvés pour le principal de sécurité, un case activée est exécuté pour vérifier si le rôle dispose des autorisations nécessaires pour effectuer des actions telles que Écriture, Lecture et Suppression. Si c’est le cas, le principal de sécurité peut accéder à tous les fichiers et dossiers, en fonction du rôle de conteneur.
    • Il n’y a aucune vérification ACL 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