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. Den resulterande tjänsten erbjuder funktioner från Azure Data Lake Storage, 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.
- Använda portalen
- Använda Azure CLI
- PowerShell stöds för närvarande inte för att skapa ett HDInsight-kluster med Azure 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).
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 styr jag å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 ställer jag in behörigheter för Microsoft Entra-användare att köra frågor mot 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
Skapa en fil på lokal lagring.
touch testFile.txt
Skapa kataloger på klusterlagring.
hdfs dfs -mkdir abfs://CONTAINERNAME@STORAGEACCOUNT.dfs.core.windows.net/sampledata1/ hdfs dfs -mkdir abfs:///sampledata2/ hdfs dfs -mkdir /sampledata3/
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/
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/';