Använda Azure Data Lake Storage Gen2 med Azure HDInsight-kluster
Azure Data Lake Storage Gen2 är en molnlagringstjänst för analys av stordata 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: filsystemsemantik, säkerhet på katalog- 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 hjälp av Data Lake Storage Gen2 finns i Jämför lagringsalternativ för användning med Azure HDInsight kluster.
Varning
Faktureringen för HDInsight-kluster är prorated 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 ett lagringsalternativ för nästan alla Azure HDInsight klustertyper som både standardkonto och ytterligare ett lagringskonto. HBase kan dock bara ha ett konto med Data Lake Storage Gen2.
Anteckning
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 anvisningar 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:er). Data Lake Storage Gen1 stöder endast åtkomstkontrolllistor för att kontrollera åtkomst till data.
Azure RBAC använder rolltilldelningar för att effektivt tillämpa uppsättningar av behörigheter för användare, grupper och tjänstens huvudnamn för Azure-resurser. Vanligtvis är dessa Azure-resurser 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 registrerats i Azure Active Directory (Azure AD) vars autentiseringsuppgifter hanteras av Azure. Med hanterade identiteter behöver du inte registrera tjänstens huvudnamn i Azure AD. Eller behåll autentiseringsuppgifter, till exempel certifikat.
Azure-tjänster har två typer av hanterade identiteter: system-tilldelade och användar tilldelade. HDInsight använder användar tilldelade hanterade identiteter för att få åtkomst till Data Lake Storage Gen2. En user-assigned managed identity skapas som en fristående Azure-resurs. När den skapas skapar Azure en identitet i den Azure AD-klientorganisation 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 Azure AD-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 Azure AD-säkerhetsgrupper som tilldelat huvudnamn i ACL:er. Tilldela inte behörigheter för filåtkomst direkt till enskilda användare eller tjänstens huvudnamn. Med Azure AD-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 tillämpa ACL:er på nytt i en hel katalogstruktur. Du behöver bara lägga till eller ta bort användarna från lämplig Azure AD-säkerhetsgrupp. ACL:er ärvs inte, så att tillämpa ACL:er igen kräver att ACL:en uppdateras 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 klustrets huvudnod. I exemplen används alla tre URI-scheman. Ersätt CONTAINERNAME och med relevanta STORAGEACCOUNT värden
Några hdfs-kommandon
Skapa en fil på lokal lagring.
touch testFile.txtSkapa kataloger i 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 på 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 illustrerande syfte. Använd bara en av posterna för den LOCATION faktiska körningen.
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/';