Bekende problemen met Azure Data Lake Storage

In dit artikel worden bekende problemen en beperkingen beschreven van Azure Data Lake Storage voor accounts waarvoor de hiërarchische naamruimtefunctie is ingeschakeld. Gebruik deze informatie om uw gegevenswerkstromen te beheren en potentiële valkuilen te voorkomen bij het gebruik van verschillende API's en integraties.

Opmerking

Sommige van de functies die in dit artikel worden beschreven, worden mogelijk niet ondersteund in accounts waarvoor ondersteuning voor Network File System (NFS) 3.0 is ingeschakeld. Als u een tabel wilt weergeven waarin de impact van functieondersteuning wordt weergegeven wanneer verschillende mogelijkheden zijn ingeschakeld, raadpleegt u de functieondersteuning voor Blob Storage in Azure Storage-accounts.

Ondersteuning voor functies, services en platformen

De meeste Blob Storage-functies, Azure service-integraties en opensourceplatforms worden ondersteund in accounts met een hiërarchische naamruimte. Zie voor volledige lijsten:

Blob Storage-API’s

Data Lake Storage-API's, NFS 3.0 en Blob-API's kunnen op dezelfde gegevens worden uitgevoerd.

In deze sectie worden problemen en beperkingen beschreven met het gebruik van blob-API's, NFS 3.0 en Data Lake Storage-API's om op dezelfde gegevens te werken.

  • U kunt geen blob-API's, NFS 3.0 en Data Lake Storage-API's gebruiken om naar hetzelfde exemplaar van een bestand te schrijven. Als u naar een bestand schrijft met behulp van Data Lake Storage API's of NFS 3.0, zijn de blokken van dat bestand niet zichtbaar voor aanroepen naar de blob-API voor bloklijst ophalen. De enige uitzondering is wanneer u overschrijft. U kunt een bestand of blob overschrijven met behulp van API of met behulp van NFS 3.0 met de optie nul afkappen (een POSIX-stijlbewerking waarmee het bestand wordt afgekapt tot nul bytes voordat u schrijft).

    U kunt blobs die zijn gemaakt met behulp van een Data Lake Storage-bewerking, zoals de bewerking Path - Create, niet overschrijven met behulp van de bewerkingen PutBlock of PutBlockList. U kunt deze blobs echter overschrijven met behulp van een PutBlob-bewerking , afhankelijk van de maximaal toegestane blobgrootte die wordt opgelegd door de bijbehorende API-versie die PutBlob gebruikt.

  • Wanneer u de bewerking Lijst-blobs gebruikt zonder een scheidingsteken op te geven, bevatten de resultaten zowel mappen als blobs. Als u ervoor kiest om een scheidingsteken te gebruiken, gebruikt u alleen een schuine streep (/). Dit is het enige ondersteunde scheidingsteken.

  • Als u de Blob-API verwijderen gebruikt om een map te verwijderen, wordt de map alleen verwijderd als deze leeg is. Deze voorwaarde betekent dat u de Blob-API niet kunt gebruiken om directory's recursief te verwijderen.

Deze Blob REST API's worden niet ondersteund:

Niet-beheerde VM-schijven worden niet ondersteund in accounts met een hiërarchische naamruimte. Als u een hiërarchische naamruimte wilt inschakelen voor een opslagaccount, plaatst u niet-beheerde VM-schijven in een opslagaccount waarvoor de hiërarchische naamruimtefunctie niet is ingeschakeld.

Ondersteuning voor het recursief instellen van toegangsbeheerlijsten (ACL's) in Azure Data Lake Storage

De mogelijkheid om ACL-wijzigingen van een oudermap recursief toe te passen op onderliggende items, is algemeen beschikbaar. In de huidige versie van deze mogelijkheid kunt u ACL-wijzigingen toepassen met behulp van Azure Storage Explorer, PowerShell, Azure CLI en de .NET, Java, Python en Node.js SDK's. Ondersteuning is nog niet beschikbaar voor Azure Portal.

Toegangsbeheerlijsten (ACL) en anonieme leestoegang

Als anonieme leestoegang wordt verleend aan een container, hebben ACL's geen effect op die container of de bestanden in die container. Deze beperking is alleen van invloed op leesaanvragen. Schrijfaanvragen respecteren nog steeds de ACL's. Autorisatie vereisen voor alle aanvragen voor blobgegevens.

Privé-eindpunten voor Azure Data Lake Storage

Als u privé-eindpunten gebruikt voor toegang tot Azure Data Lake Storage (een opslagaccount waarvoor hiërarchische naamruimte is ingeschakeld), moet u er een maken voor zowel de blob- als dfs-subresources. Bewerkingen die zijn gericht op het eindpunt Data Lake Storage (dfs) kunnen worden omgeleid naar het blob-eindpunt en sommige bewerkingen (zoals het beheren van ACL's, het maken van mappen en het verwijderen van mappen) vereisen een DFS-privé-eindpunt. Het maken van privé-eindpunten voor beide subresources zorgt ervoor dat alle bewerkingen zijn voltooid. Zie Privé-eindpunten gebruiken voor Azure Storage voor meer informatie.

AzCopy met Azure Data Lake Storage

Wanneer u AzCopy gebruikt met accounts waarvoor een hiërarchische naamruimte is ingeschakeld, ondersteunt alleen AzCopy v10 de vereiste Data Lake Storage API's. Gebruik alleen de nieuwste versie van AzCopy (AzCopy v10). Eerdere versies, zoals AzCopy v8.1, worden niet ondersteund.

Azure Storage Explorer met Azure Data Lake Storage

Wanneer u Azure Storage Explorer gebruikt met opslagaccounts waarvoor een hiërarchische naamruimte is ingeschakeld, gebruikt u alleen versies 1.6.0 of hoger. Eerdere versies bieden geen ondersteuning voor de hiërarchische naamruimte-API's die zijn vereist voor het beheren van bestanden en mappen.

Opslagbrowser in Azure Portal

In de opslagbrowser die wordt weergegeven in Azure Portal, hebt u geen toegang tot een bestand of map door een pad op te geven. In plaats daarvan moet u door mappen bladeren om een bestand te bereiken. Als een ACL een gebruiker leestoegang verleent tot een bestand, maar geen leestoegang heeft tot alle mappen die tot het bestand leiden, kan die gebruiker het bestand niet weergeven in de opslagbrowser.

Toepassingen van derden

Toepassingen van derden die GEBRUIKMAKEN van REST API's, blijven werken als u ze met Data Lake Storage gebruikt. Toepassingen die Blob-API's aanroepen, werken waarschijnlijk.

Windows Azure Storage Blob-stuurprogramma (WASB)

Momenteel ondervindt het WASB-stuurprogramma, dat is ontworpen om alleen met de Blob-API te werken, problemen in een aantal veelvoorkomende scenario's. Met name wanneer het een client is voor een hiërarchische naamruimte waarvoor opslagaccount is ingeschakeld. Toegang met meerdere protocollen op Data Lake Storage vermindert deze problemen niet.

Het WASB-stuurprogramma als client gebruiken voor een opslagaccount met hiërarchische naamruimte wordt niet ondersteund. Gebruik in plaats daarvan het stuurprogramma Azure Blob File System (ABFS) in uw Hadoop-omgeving. Als u probeert weg te migreren van een on-premises Hadoop-omgeving met een versie ouder dan Hadoop branch-3, dien dan een supportticket in bij Azure Support om te bepalen wat de juiste vervolgstappen voor uw organisatie zijn.

Zacht verwijderen van blobs in Azure Data Lake Storage

Als u in opslagaccounts met een hiërarchische naamruimte de naam van bovenliggende mappen wijzigt voor voorlopig verwijderde bestanden of mappen, worden de voorlopig verwijderde items mogelijk niet correct weergegeven in de Azure-portal. In dergelijke gevallen gebruikt u PowerShell of Azure CLI om de voorlopig verwijderde items weer te geven en te herstellen.

Gebeurtenisabonnementen in Azure Data Lake Storage

Als uw account een gebeurtenisabonnement heeft in opslagaccounts met een hiërarchische naamruimte, leiden leesbewerkingen op het secundaire eindpunt (de alleen-lezen replica in geografisch redundante opslagaccounts) tot een fout. U kunt dit probleem oplossen door gebeurtenisabonnementen te verwijderen. Als u het Data Lake Storage-eindpunt (abfss://URI) gebruikt voor accounts met niet-hiërarchische naamruimte, worden er geen gebeurtenissen gegenereerd, maar genereert het blob-eindpunt (wasb:// URI) gebeurtenissen.

Aanbeveling

Leestoegang tot het secundaire eindpunt is alleen beschikbaar wanneer u geografisch redundante opslag met leestoegang (RA-GRS) of geografisch zone-redundante opslag met leestoegang (RA-GZRS) inschakelt.