Använda Azure Data Lake Storage Gen2 med Azure HDInsight-kluster

Azure Data Lake Storage Gen2 är en molnlagringstjänst som är dedikerad till stordataanalys som bygger på Azure Blob Storage. Data Lake Storage Gen2 kombinerar funktionerna i Azure Blob Storage och Azure Data Lake Storage Gen1. Den resulterande tjänsten erbjuder funktioner från Azure Data Lake Storage Gen1, inklusive: filsystemssemantik, säkerhet på katalognivå och filnivå samt anpassningsbarhet. Tillsammans med funktioner för låg kostnad, nivåindelad lagring, hög tillgänglighet och haveriberedskap från Azure Blob Storage.

En fullständig jämförelse av alternativ för att skapa kluster med Data Lake Storage Gen2 finns i Jämför lagringsalternativ för användning med Azure HDInsight-kluster.

Varning

Faktureringen för HDInsight-kluster beräknas proportionellt per minut, oavsett om du använder dem eller inte. Se till att ta bort klustret när du har använt det. Se hur du tar bort ett HDInsight-kluster.

Tillgänglighet för Data Lake Storage Gen2

Data Lake Storage Gen2 är tillgängligt som lagringsalternativ för nästan alla Azure HDInsight-klustertyper som både standard och ytterligare ett lagringskonto. HBase kan dock bara ha ett konto med Data Lake Storage Gen2.

Kommentar

När du har valt Data Lake Storage Gen2 som primär lagringstyp kan du inte välja en Data Lake Storage Gen1 som ytterligare lagring.

Skapa HDInsight-kluster med Data Lake Storage Gen2

Använd följande länkar för detaljerade instruktioner om hur du skapar HDInsight-kluster med åtkomst till Data Lake Storage Gen2.

Åtkomstkontroll för Data Lake Storage Gen2 i HDInsight

Vilka typer av behörigheter stöder Data Lake Storage Gen2?

Data Lake Storage Gen2 använder en åtkomstkontrollmodell som stöder både rollbaserad åtkomstkontroll i Azure (Azure RBAC) och POSIX-liknande åtkomstkontrollistor (ACL). Data Lake Storage Gen1 stöder endast åtkomstkontrollistor för att styra åtkomsten till data.

Azure RBAC använder rolltilldelningar för att effektivt tillämpa behörighetsuppsättningar på användare, grupper och tjänstens huvudnamn för Azure-resurser. Dessa Azure-resurser är vanligtvis begränsade till resurser på den översta nivån (till exempel Azure Blob Storage-konton). För Azure Blob Storage, och även Data Lake Storage Gen2, har den här mekanismen utökats till filsystemresursen.

Mer information om filbehörigheter med Azure RBAC finns i Rollbaserad åtkomstkontroll i Azure (Azure RBAC).

Mer information om filbehörigheter med ACL:er finns i Åtkomstkontrollistor för filer och kataloger.

Hur gör jag för att styra åtkomsten till mina data i Data Lake Storage Gen2?

HDInsight-klustrets möjlighet att komma åt filer i Data Lake Storage Gen2 styrs via hanterade identiteter. En hanterad identitet är en identitet som är registrerad i Microsoft Entra vars autentiseringsuppgifter hanteras av Azure. Med hanterade identiteter behöver du inte registrera tjänstens huvudnamn i Microsoft Entra-ID. Eller underhålla autentiseringsuppgifter som certifikat.

Azure-tjänster har två typer av hanterade identiteter: systemtilldelade och användartilldelade. HDInsight använder användartilldelade hanterade identiteter för att få åtkomst till Data Lake Storage Gen2. En user-assigned managed identity skapas som en fristående Azure-resurs. Genom en skapandeprocess skapar Azure en identitet i Microsoft Entra-klientorganisationen som är betrodd av den prenumeration som används. När identiteten har skapats kan den tilldelas till en eller flera tjänstinstanser i Azure.

Livscykeln för en användartilldelad identitet hanteras separat från livscykeln för de Azure-tjänstinstanser som den är tilldelad till. Mer information om hanterade identiteter finns i Vad är hanterade identiteter för Azure-resurser?.

Hur gör jag för att ange behörigheter för Microsoft Entra-användare att fråga efter data i Data Lake Storage Gen2 med hjälp av Hive eller andra tjänster?

Om du vill ange behörigheter för användare att fråga efter data använder du Microsoft Entra-säkerhetsgrupper som det tilldelade huvudkontot i ACL:er. Tilldela inte direkt filåtkomstbehörigheter till enskilda användare eller tjänstens huvudnamn. Med Microsoft Entra-säkerhetsgrupper för att styra flödet av behörigheter kan du lägga till och ta bort användare eller tjänstens huvudnamn utan att återanvända ACL:er i en hel katalogstruktur. Du behöver bara lägga till eller ta bort användarna från lämplig Microsoft Entra-säkerhetsgrupp. ACL:er ärvs inte, så om du ska använda ACL:er igen måste du uppdatera ACL:en för varje fil och underkatalog.

Åtkomst till filer från klustret

Det finns flera sätt att komma åt filerna i Data Lake Storage Gen2 från ett HDInsight-kluster.

  • Via det fullständiga namnet. Med den här metoden kan du ange den fullständiga sökvägen till filen som du vill öppna.

    abfs://<containername>@<accountname>.dfs.core.windows.net/<file.path>/
    
  • Via det förkortade sökvägsformatet. Med den här metoden ersätter du sökvägen upp till klusterroten med:

    abfs:///<file.path>/
    
  • Med den relativa sökvägen. Med den här metoden anger du bara den relativa sökvägen till den fil som du vill öppna.

    /<file.path>/
    

Exempel på dataåtkomst

Exemplen baseras på en ssh-anslutning till huvudnoden i klustret. Exemplen använder alla tre URI-scheman. Ersätt CONTAINERNAME och STORAGEACCOUNT med relevanta värden

Några hdfs-kommandon

  1. Skapa en fil på lokal lagring.

    touch testFile.txt
    
  2. Skapa kataloger på klusterlagring.

    hdfs dfs -mkdir abfs://CONTAINERNAME@STORAGEACCOUNT.dfs.core.windows.net/sampledata1/
    hdfs dfs -mkdir abfs:///sampledata2/
    hdfs dfs -mkdir /sampledata3/
    
  3. Kopiera data från lokal lagring till klusterlagring.

    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. Lista kataloginnehåll i klusterlagring.

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

Skapa en Hive-tabell

Tre filplatser visas i illustrativa syften. Använd bara en av posterna för LOCATION faktisk körning.

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/';

Nästa steg