Azure Data Lake Storage Gen2 gebruiken met Azure HDInsight-clusters

Azure Data Lake Storage Gen2 is een cloudopslagservice die is toegewezen aan big data analytics, 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 map- en bestandsniveau en aanpassingsvermogen. Samen met de voordelige, 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 de opties voor het maken van clusters metbehulp van 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 een opslagoptie voor bijna alle Azure HDInsight clustertypen als een standaardopslagaccount en een extra opslagaccount. HBase kan echter slechts één account hebben met Data Lake Storage Gen2.

Notitie

Nadat u Data Lake Storage Gen2 als uw primaire 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 over 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 model voor toegangsbeheer dat zowel op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) als POSIX-achtige toegangsbeheerlijsten (ACL's) 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 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 toegang tot mijn gegevens in Data Lake Storage Gen2?

De mogelijkheid van uw 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 Azure Active Directory (Azure AD) waarvan de referenties worden beheerd door Azure. Met beheerde identiteiten hoeft u geen service-principals te registreren in Azure AD. Of behoud referenties zoals certificaten.

Azure-services hebben twee typen beheerde identiteiten: door het systeem toegewezen en door de gebruiker toegewezen. HDInsight maakt gebruik van 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 productieproces maakt Azure een identiteit in de Azure AD-tenant, die wordt vertrouwd door het gebruikte abonnement. 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 Azure AD-gebruikers om gegevens op te vragen in Data Lake Storage Gen2 met behulp van Hive of andere services?

Als u machtigingen wilt instellen voor gebruikers om gegevens op te vragen, gebruikt u Azure AD-beveiligingsgroepen als de toegewezen principal in ACL's. Wijs niet rechtstreeks machtigingen voor bestandstoegang toe aan afzonderlijke gebruikers of service-principals. Met Azure AD-beveiligingsgroepen om de stroom machtigingen te bepalen, 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 Azure AD-beveiligingsgroep. ACL's worden niet overgenomen, dus voor het opnieuw toevoegen van ACL's moet de ACL voor elk bestand en elke subdirectory worden bijgewerkt.

Bestanden openen vanuit het cluster

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

  • 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. Vervang CONTAINERNAME en door de relevante STORAGEACCOUNT waarden

Enkele hdfs-opdrachten

  1. Maak een bestand in de lokale opslag.

    touch testFile.txt
    
  2. Maak directories op 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. Mapinhoud weergeven in 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 vermeldingen voor de LOCATION 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