Problemen met toegang tot opslag in de Apache Spark-pool van Azure Synapse Analytics oplossen
Van toepassing op: Azure Synapse Analytics
Apache Spark is een framework voor parallelle verwerking dat ondersteuning biedt voor in-memory verwerking om de prestaties van toepassingen voor de analyse van big data te verbeteren. Apache Spark in Azure Synapse Analytics is een van de Microsoft-implementaties van Apache Spark in de cloud. Met Azure Synapse kunt u eenvoudig een serverloze Apache Spark-pool maken en configureren in Azure. Spark-pools in Azure Synapse zijn compatibel met opslag van de tweede generatie in Azure Storage en Azure Data Lake. Daarom kunt u Spark-pools gebruiken om uw gegevens te verwerken die zijn opgeslagen in Azure.
Als u problemen ondervindt met toegang tot de poolopslag, zoals '403'-fouten of de fout van de Synapse-werkruimte om gekoppelde services te vinden, gebruikt u de opgegeven richtlijnen om uw problemen op te lossen.
Niet-ondersteunde scenario's
De volgende gebruiksvoorbeelden worden niet ondersteund wanneer u verbinding maakt met een opslagaccount vanuit een Synapse Spark-pool:
- Verbinding maken met ADLS Gen 1-opslagaccount
- Verbinding maken met ADLS Gen 2-opslagaccount met door de gebruiker toegewezen beheerde identiteit
- Verbinding maken met ADLS Gen 2-opslagaccount met:
- Gedeelde VNET Synapse-werkruimte
- Storage-account met ingeschakelde firewall
Bekende problemen en oplossingen
Fout | Oplossing |
---|---|
"errorMessage":"LSRServiceException is [{"StatusCode":400,"ErrorResponse":{"code":"LSRLinkedServiceFailure","message":"Kan gekoppelde service AzureDataLakeStorage1 niet vinden; | Deze fout wordt gegenereerd als een Synapse-werkruimte is gekoppeld aan een Git-opslagplaats, Azure DevOps Services of GitHub. Het wordt ook gegenereerd wanneer een artefact, zoals een notebook of gekoppelde service, niet wordt gepubliceerd. Publiceer de codewijzigingen in de samenwerkingsbranch handmatig naar de Synapse-service. |
stdout: Uitzondering in thread "main" org.apache.hadoop.fs.FileAlreadyExistsException: Bewerking mislukt: "Dit eindpunt biedt geen ondersteuning voor BlobStorageEvents of SoftDelete. Schakel deze accountfuncties uit als u dit eindpunt wilt gebruiken.", 409, HEAD, https://< storageaccountname.dfs.core.windows.net/scripts/?upn=false&action=getAccessControl&timeout=90> | Controleer of ADLS Gen 2-opslag is geconfigureerd als primaire opslag. Als u SoftDelete wilt uitschakelen, schakelt u het selectievakje Voorlopig verwijderen van blob inschakelen uit voor het opslagaccount. |
Problemen met 403 oplossen
Toegang tot opslag en toegang tot het account
- Als u wilt schrijven naar opslag via een pijplijn, is Synapse Workspace MSI de beveiligingsprincipaal waarmee bewerkingen worden uitgevoerd, zoals Lezen, Schrijven en Verwijderen in de opslag.
- Zorg ervoor dat het MSI-account van de werkruimte de rol Inzender voor opslagblobgegevens heeft om alle acties uit te voeren.
- Als u Azure Notebooks gebruikt voor toegang tot het opslagaccount, gebruikt u het aangemelde account, tenzij u toegang hebt tot opslag via gekoppelde services.
- Het aangemelde gebruikersaccount moet de rol Inzender voor opslagblobgegevens hebben om volledige toegang en machtigingen te hebben.
- Gebruik gekoppelde service- en service-principalverificatie om verbinding te maken met opslag. Vervolgens moet aan de toepassing die is geregistreerd bij Azure Active, 'Inzender voor opslagblobgegevens' worden toegewezen in de Azure-opslag.
Voor de implementatie van op rollen gebaseerd toegangsbeheer (RBAC) in opslag worden details beheerd op containerniveau. Zie Toegangsbeheermodel in Azure Data Lake Storage Gen2 voor meer informatie.
Op rollen gebaseerd toegangsbeheer van Azure
Op rollen gebaseerd toegangsbeheer van Azure maakt gebruik van roltoewijzingen om sets machtigingen toe te passen op beveiligingsprinciplen, zoals synapse workspace MSI, aangemelde gebruiker of toepassingsregister in de Microsoft Entra-id. Rollen zoals Eigenaar, Inzender, Lezer en Inzender voor opslagaccounts stellen een beveiligingsprincipaal in staat om een opslagaccount te beheren.
Toegangsbeheerlijsten
Gebruik toegangsbeheerlijsten (ACL's) om gedetailleerde toegangsniveaus toe te passen op mappen en bestanden.
- Als gegevenstoegangsrollen zoals Opslagblobgegevenslezer of Inzender voor opslagblobgegevens worden gevonden voor de beveiligingsprincipaal, wordt er een controle uitgevoerd om te controleren of de rol de machtigingen heeft om acties uit te voeren, zoals Schrijven, Lezen en Verwijderen. Zo ja, dan heeft de beveiligingsprincipaal mogelijk toegang tot alle bestanden en mappen, op basis van de containerrol.
- Er zijn geen extra ACL-controles op de bestanden of mappen.
- Als een rol voor gegevenstoegang niet wordt gevonden voor de beveiligingsprincipaal op het niveau van de opslagcontainer, worden ACL-controles uitgevoerd op de bestanden en mappen.