Beheben von Problemen beim Zugriff auf Apache Spark-Poolspeicher in Azure Synapse Analytics
Gilt für: Azure Synapse Analytics
Apache Spark ist ein Framework für die Parallelverarbeitung, das In-Memory-Verarbeitung unterstützt, um die Leistung von Big Data-Analyseanwendungen zu steigern. Apache Spark in Azure Synapse Analytics ist eine der Microsoft-Implementierungen von Apache Spark in der Cloud. Azure Synapse vereinfacht das Erstellen und Konfigurieren eines serverlosen Apache Spark-Pools in Azure. Spark-Pools in Azure Synapse sind mit Azure Storage sowie mit Azure Data Lake Storage der zweiten Generation kompatibel. Dadurch können Sie Spark-Pools für die Verarbeitung Ihrer in Azure gespeicherten Daten verwenden.
Wenn Probleme beim Poolspeicherzugriff auftreten, z. B. "403"-Fehler oder fehler im Synapse-Arbeitsbereich, um verknüpfte Dienste zu finden, verwenden Sie die bereitgestellten Anleitungen, um Ihre Probleme zu beheben.
Nicht unterstützte Szenarien
Die folgenden Anwendungsfälle werden nicht unterstützt, wenn Sie eine Verbindung mit einem Speicherkonto aus einem Synapse Spark-Pool herstellen:
- Herstellen einer Verbindung mit ADLS Gen 1-Speicherkonto
- Herstellen einer Verbindung mit einem ADLS Gen 2-Speicherkonto mit vom Benutzer zugewiesener verwalteter Identität
- Herstellen einer Verbindung mit dem ADLS Gen 2-Speicherkonto mit folgendem Konto:
- Freigegebenen Synapse-Arbeitsbereich im VNet
- Speicherkonto mit aktivierter Firewall
Bekannte Probleme und Lösungen
Fehler | Lösung |
---|---|
"errorMessage":"LSRServiceException is [{"StatusCode":400,"ErrorResponse":{"code":"LSRLinkedServiceFailure","message":"Could not find Linked Service AzureDataLakeStorage1; | Dieser Fehler wird generiert, wenn ein Synapse-Arbeitsbereich einem Git-Repository, Azure DevOps Services oder GitHub zugeordnet ist. Sie wird auch generiert, wenn ein Artefakt, z. B. ein Notizbuch oder ein verknüpfter Dienst, nicht veröffentlicht wird. Veröffentlichen Sie Ihre Codeänderungen manuell im Zweig "Zusammenarbeit" im Synapse-Dienst. |
stdout: Exception in thread "main" org.apache.hadoop.fs.FileAlreadyExistsException: Operation failed: "This endpoint does not support BlobStorageEvents or SoftDelete. Deaktivieren Sie diese Kontofeatures, wenn Sie diesen Endpunkt verwenden möchten.", 409, HEAD, https://< storageaccountname.dfs.core.windows.net/scripts/?upn=false&action=getAccessControl&timeout=90> | Stellen Sie sicher, dass ADLS Gen 2-Speicher als primärer Speicher konfiguriert ist. Deaktivieren Sie zum Deaktivieren von SoftDelete das Kontrollkästchen "Blob soft delete aktivieren" für das Speicherkonto. |
Problembehandlung bei Problemen mit '403'
Speicherzugriff und das Konto, auf das zugegriffen wird
- Zum Schreiben in den Speicher über eine Pipeline ist Synapse Workspace MSI der Sicherheitsprinzipal, der alle Vorgänge wie "Lesen", "Schreiben" und "Löschen" im Speicher ausführt.
- Stellen Sie sicher, dass das MSI-Konto des Arbeitsbereichs über die Rolle "Mitwirkender von Speicher-BLOB-Daten" verfügt, um alle Aktionen auszuführen.
- Wenn Sie Azure-Notizbücher für den Zugriff auf das Speicherkonto verwenden, verwenden Sie das angemeldete Konto, es sei denn, Sie greifen über verknüpfte Dienste auf den Speicher zu.
- Das angemeldete Benutzerkonto sollte über die Rolle "Mitwirkender von Speicher-BLOB-Daten" verfügen, um vollzugriff und Berechtigungen zu haben.
- Um eine Verbindung mit dem Speicher herzustellen, verwenden Sie die verknüpfte Dienst- und Dienstprinzipalauthentifizierung. Anschließend sollte die anwendung, die bei Azure Active registriert ist, auf dem Azure-Speicher "Storage Blob Data Contributor" zugewiesen werden.
Für die Implementierung der rollenbasierten Zugriffssteuerung (Role-Based Access Control, RBAC) im Speicher werden Details auf Containerebene gesteuert. Weitere Informationen finden Sie unter Zugriffssteuerungsmodell in Azure Data Lake Storage Gen2.
Rollenbasierte Zugriffssteuerung (Azure)
Die rollenbasierte Azure-Zugriffssteuerung verwendet Rollenzuweisungen, um Gruppen von Berechtigungen auf Sicherheitsprinzipale wie die Msi-Datei des Synapse-Arbeitsbereichs, den angemeldeten Benutzer oder die Anwendung in der Microsoft Entra-ID anzuwenden. Rollen wie Besitzer, Mitwirkender, Leser und Speicherkontomitwirkender ermöglichen ein Sicherheitsprinzipal zum Verwalten eines Speicherkontos.
Zugriffssteuerungslisten
Verwenden Sie Zugriffssteuerungslisten (Access Control Lists, ACLs), um detaillierte Zugriffsebenen auf Verzeichnisse und Dateien anzuwenden.
- Wenn Datenzugriffsrollen wie Storage Blob Data Reader oder Storage Blob Data Contributor für den Sicherheitsprinzipal gefunden werden, wird eine Überprüfung ausgeführt, um zu überprüfen, ob die Rolle über die Berechtigungen zum Ausführen von Aktionen wie "Schreiben", "Lesen" und "Löschen" verfügt. Wenn ja, kann der Sicherheitsprinzipal auf alle Dateien und Ordner zugreifen, basierend auf der Containerrolle.
- Es gibt keine zusätzlichen ACL-Überprüfungen für die Dateien oder Ordner.
- Wenn eine Datenzugriffsrolle für den Sicherheitsprinzipal auf Speichercontainerebene nicht gefunden wird, werden ACL-Prüfungen für die Dateien und Ordner ausgeführt.