Azure Data Lake Storage Gen2 gebruiken met Azure HDInsight-clusters

Azure Data Lake Storage Gen2 is een cloudopslagservice die is toegewezen aan big data-analyses, gebouwd op Azure Blob Storage. Data Lake Storage Gen2 combineert de mogelijkheden van Azure Blob Storage en Azure Data Lake Storage Gen1. De resulterende service biedt functies van Azure Data Lake Storage Gen1, waaronder: semantiek van bestandssysteem, beveiliging op mapniveau en beveiliging op bestandsniveau en aanpassingsvermogen. Samen met de goedkope, gelaagde opslag, hoge beschikbaarheid en mogelijkheden voor herstel na noodgevallen vanuit Azure Blob Storage.

Zie Opslagopties vergelijken voor gebruik met Azure HDInsight-clusters voor een volledige vergelijking van opties voor het maken van clusters met Data Lake Storage Gen2.

Waarschuwing

HDInsight-clusters worden pro rato per minuut gefactureerd, ongeacht of u er wel of niet gebruik van maakt. Verwijder uw cluster daarom als u er klaar mee bent. Zie how to delete an HDInsight cluster (een HDInsight-cluster verwijderen).

Beschikbaarheid van Data Lake Storage Gen2

Data Lake Storage Gen2 is beschikbaar als opslagoptie voor bijna alle Azure HDInsight-clustertypen als standaard en een extra opslagaccount. HBase kan echter slechts één account hebben met Data Lake Storage Gen2.

Notitie

Nadat u Data Lake Storage Gen2 als primair opslagtype hebt geselecteerd, kunt u geen Data Lake Storage Gen1 als extra opslag selecteren.

HDInsight-clusters maken met Data Lake Storage Gen2

Gebruik de volgende koppelingen voor gedetailleerde instructies voor het maken van HDInsight-clusters met toegang tot Data Lake Storage Gen2.

Toegangsbeheer voor Data Lake Storage Gen2 in HDInsight

Welke soorten machtigingen ondersteunt Data Lake Storage Gen2?

Data Lake Storage Gen2 maakt gebruik van een toegangsbeheermodel dat zowel op rollen gebaseerd toegangsbeheer (Azure RBAC) als POSIX-achtige toegangsbeheerlijsten (ACL's) van Azure ondersteunt. Data Lake Storage Gen1 ondersteunt alleen toegangsbeheerlijsten voor het beheren van de toegang tot gegevens.

Azure RBAC maakt gebruik van roltoewijzingen om effectief sets machtigingen toe te passen op gebruikers, groepen en service-principals voor Azure-resources. Deze Azure-resources zijn doorgaans beperkt tot resources op het hoogste niveau (bijvoorbeeld Azure Blob Storage-accounts). Voor Azure Blob Storage en ook Data Lake Storage Gen2 is dit mechanisme uitgebreid naar de bestandssysteemresource.

Zie Op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) voor meer informatie over bestandsmachtigingen met Azure RBAC.

Zie Toegangsbeheerlijsten voor bestanden en mappen voor meer informatie over bestandsmachtigingen met ACL's.

Hoe kan ik de toegang tot mijn gegevens in Data Lake Storage Gen2 beheren?

De mogelijkheid van HDInsight-cluster om toegang te krijgen tot bestanden in Data Lake Storage Gen2 wordt beheerd via beheerde identiteiten. Een beheerde identiteit is een identiteit die is geregistreerd in Microsoft Entra waarvan de referenties worden beheerd door Azure. Met beheerde identiteiten hoeft u geen service-principals te registreren in Microsoft Entra-id. U kunt ook referenties zoals certificaten onderhouden.

Azure-services hebben twee typen beheerde identiteiten: door het systeem toegewezen en door de gebruiker toegewezen. HDInsight gebruikt door de gebruiker toegewezen beheerde identiteiten voor toegang tot Data Lake Storage Gen2. Een user-assigned managed identity wordt gemaakt als een zelfstandige Azure-resource. Via een maakproces maakt Azure een identiteit in de Microsoft Entra-tenant die wordt vertrouwd door het abonnement dat wordt gebruikt. Nadat de identiteit is gemaakt, kan deze worden toegewezen aan een of meer Azure-service-exemplaren.

De levenscyclus van een door de gebruiker toegewezen identiteit wordt afzonderlijk beheerd van de levenscyclus van de Azure Service-exemplaren waaraan de identiteit is toegewezen. Zie Wat zijn beheerde identiteiten voor Azure-resources? voor meer informatie over beheerde identiteiten.

Hoe kan ik machtigingen instellen voor Microsoft Entra-gebruikers om gegevens in Data Lake Storage Gen2 op te vragen met hive of andere services?

Als u machtigingen wilt instellen voor gebruikers om query's uit te voeren op gegevens, gebruikt u Microsoft Entra-beveiligingsgroepen als de toegewezen principal in ACL's. Wijs geen machtigingen voor bestandstoegang rechtstreeks toe aan afzonderlijke gebruikers of service-principals. Met Microsoft Entra-beveiligingsgroepen om de stroom van machtigingen te beheren, kunt u gebruikers of service-principals toevoegen en verwijderen zonder ACL's opnieuw toe te voegen aan een volledige mapstructuur. U hoeft alleen de gebruikers toe te voegen aan of te verwijderen uit de juiste Microsoft Entra-beveiligingsgroep. ACL's worden niet overgenomen, dus het opnieuw toewijzen van ACL's vereist het bijwerken van de ACL voor elk bestand en elke submap.

Bestanden openen vanuit het cluster

Er zijn verschillende manieren waarop u toegang hebt tot de bestanden in Data Lake Storage Gen2 vanuit een HDInsight-cluster.

  • De volledig gekwalificeerde naam gebruiken. Met deze methode geeft u het volledige pad op naar het bestand dat u wilt openen.

    abfs://<containername>@<accountname>.dfs.core.windows.net/<file.path>/
    
  • De verkorte padnotatie gebruiken. Met deze methode vervangt u het pad naar de hoofdmap van het cluster door:

    abfs:///<file.path>/
    
  • Het relatieve pad gebruiken. Met deze methode geeft u alleen het volledige relatieve pad op naar het bestand dat u wilt openen.

    /<file.path>/
    

Voorbeelden van gegevenstoegang

Voorbeelden zijn gebaseerd op een SSH-verbinding met het hoofdknooppunt van het cluster. In de voorbeelden worden alle drie de URI-schema's gebruikt. Vervangen CONTAINERNAME en STORAGEACCOUNT door de relevante waarden

Een paar HDFS-opdrachten

  1. Maak een bestand in de lokale opslag.

    touch testFile.txt
    
  2. Maak mappen in clusteropslag.

    hdfs dfs -mkdir abfs://CONTAINERNAME@STORAGEACCOUNT.dfs.core.windows.net/sampledata1/
    hdfs dfs -mkdir abfs:///sampledata2/
    hdfs dfs -mkdir /sampledata3/
    
  3. Gegevens kopiëren van lokale opslag naar clusteropslag.

    hdfs dfs -copyFromLocal testFile.txt  abfs://CONTAINERNAME@STORAGEACCOUNT.dfs.core.windows.net/sampledata1/
    hdfs dfs -copyFromLocal testFile.txt  abfs:///sampledata2/
    hdfs dfs -copyFromLocal testFile.txt  /sampledata3/
    
  4. Lijst met mapinhoud op clusteropslag.

    hdfs dfs -ls abfs://CONTAINERNAME@STORAGEACCOUNT.dfs.core.windows.net/sampledata1/
    hdfs dfs -ls abfs:///sampledata2/
    hdfs dfs -ls /sampledata3/
    

Een Hive-tabel maken

Er worden drie bestandslocaties weergegeven voor illustratieve doeleinden. Gebruik slechts één van de LOCATION vermeldingen voor de werkelijke uitvoering.

DROP TABLE myTable;
CREATE EXTERNAL TABLE myTable (
    t1 string,
    t2 string,
    t3 string,
    t4 string,
    t5 string,
    t6 string,
    t7 string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
STORED AS TEXTFILE
LOCATION 'abfs://CONTAINERNAME@STORAGEACCOUNT.dfs.core.windows.net/example/data/';
LOCATION 'abfs:///example/data/';
LOCATION '/example/data/';

Volgende stappen