Använda Azure-lagring med Azure HDInsight-kluster
Du kan lagra data i Azure Blob Storage eller Azure Data Lake Storage Gen2. Eller en kombination av dessa alternativ. Med de här lagringsalternativen kan du på ett säkert sätt ta bort HDInsight-kluster som används för beräkning utan att förlora användardata.
Apache Hadoop stöder en uppfattning om standardfilsystemet. Standardfilsystemet kräver att ett standardschema och en utfärdare används. Det kan också användas för att matcha relativa sökvägar. Under processen för att skapa HDInsight-kluster kan du ange en blobcontainer i Azure Storage som standardfilsystem. Eller med HDInsight 3.6 kan du välja antingen Azure Blob Storage eller Azure Data Lake Storage Gen2 som standardfilsystem med några få undantag.
I den här artikeln får du lära dig hur Azure Storage fungerar med HDInsight-kluster.
- Information om hur Data Lake Storage Gen2 fungerar med HDInsight-kluster finns i Använda Azure Data Lake Storage Gen2 med Azure HDInsight-kluster.
- Mer information om hur du skapar ett HDInsight-kluster finns i Skapa Apache Hadoop-kluster i HDInsight.
Viktigt!
Lagringskontotyp BlobStorage kan bara användas som sekundär lagring för HDInsight-kluster.
Typ av lagringskonto | Tjänster som stöds | Prestandanivåer som stöds | Prestandanivåer som inte stöds | Åtkomstnivåer som stöds |
---|---|---|---|---|
StorageV2 (generell användning v2) | Blob | Standard | Premium | Frekvent, Lågfrekvent, Arkiv* |
Lagring (generell användning v1) | Blob | Standard | Premium | Ej tillämpligt |
BlobStorage | Blob | Standard | Premium | Frekvent, Lågfrekvent, Arkiv* |
Vi rekommenderar inte att du använder standardblobcontainern för att lagra affärsdata. Ta bort standardcontainern efter varje användning för att minska lagringskostnaden. Standardcontainern innehåller program- och systemloggar. Se till att hämta loggarna innan du tar bort containern.
Det går inte att dela en blobcontainer som standardfilsystem för flera kluster.
Kommentar
Arkivåtkomstnivån är en offlinenivå som har en svarstid på flera timmar för hämtning och rekommenderas inte för användning med HDInsight. Mer information finns i Arkivåtkomstnivå.
Komma åt filer inifrån klustret
Kommentar
Azure Storage-teamet har avbrutit alla aktiva utvecklingar på WASB och rekommenderar alla kunder att använda ABFS-drivrutinen för att interagera med Blob och ADLS gen2. Mer information finns i Drivrutinen för Azure Blob Filesystem (ABFS): En dedikerad Azure Storage-drivrutin för Hadoop
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.
wasb://<containername>@<accountname>.blob.core.windows.net/<file.path>/ wasbs://<containername>@<accountname>.blob.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:
wasb:///<file.path>/ wasbs:///<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 wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/sampledata1/ hdfs dfs -mkdir wasbs:///sampledata2/ hdfs dfs -mkdir /sampledata3/
Kopiera data från lokal lagring till klusterlagring.
hdfs dfs -copyFromLocal testFile.txt wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/sampledata1/ hdfs dfs -copyFromLocal testFile.txt wasbs:///sampledata2/ hdfs dfs -copyFromLocal testFile.txt /sampledata3/
Lista kataloginnehåll i klusterlagring.
hdfs dfs -ls wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/sampledata1/ hdfs dfs -ls wasbs:///sampledata2/ hdfs dfs -ls /sampledata3/
Kommentar
När du arbetar med blobar utanför HDInsight kan de flesta verktyg inte identifiera WASB-formatet utan förväntar sig i stället ett grundläggande sökvägsformat som example/jars/hadoop-mapreduce-examples.jar
.
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 'wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/example/data/';
LOCATION 'wasbs:///example/data/';
LOCATION '/example/data/';
Få åtkomst till filer utanför klustret
Microsoft tillhandahåller följande verktyg för att arbeta med Azure Storage:
Verktyg | Linux | OS X | Windows |
---|---|---|---|
Azure-portalen | ✔ | ✔ | ✔ |
Azure CLI | ✔ | ✔ | ✔ |
Azure PowerShell | ✔ | ||
AzCopy | ✔ | ✔ |
Identifiera lagringssökväg från Ambari
Om du vill identifiera den fullständiga sökvägen till det konfigurerade standardarkivet går du till:
HDFS-konfigurationer> och ange
fs.defaultFS
i rutan filterindata.Om du vill kontrollera om wasb-arkivet har konfigurerats som sekundär lagring går du till:
HDFS-konfigurationer> och ange
blob.core.windows.net
i rutan filterindata.
Information om hur du hämtar sökvägen med hjälp av Ambari REST API finns i Hämta standardlagringen.
Blobcontainrar
Om du vill använda blobar måste du först skapa ett Azure Storage-konto. Som en del av det här steget anger du en Azure-region där lagringskontot skapas. Klustret och lagringskontot måste finnas i samma region. Hive-metaarkivet SQL Server-databasen och Apache Oozie-metaarkivet SQL Server-databasen måste finnas i samma region.
Oavsett var den finns tillhör varje blob som du skapar en container på ditt Azure Storage-konto. Den här containern kan vara en befintlig blob som skapats utanför HDInsight. Eller så kan det vara en container som skapas för ett HDInsight-kluster.
Standardcontainern lagrar klusterspecifik information, till exempel jobbhistorik och loggar. Låt inte flera HDInsight-kluster dela en standardblob-container. Den här åtgärden kan skada jobbhistoriken. Vi rekommenderar att du använder en annan container för varje kluster. Placera delade data på ett länkat lagringskonto som angetts för alla relevanta kluster i stället för standardlagringskontot. Mer information om hur du konfigurerar länkade lagringskonton finns i Skapa HDInsight-kluster. Du kan emellertid återanvända en standardcontainer för lagring när det ursprungliga HDInsight-klustret har tagits bort. För HBase-kluster kan du faktiskt behålla HBase-tabellschemat och data genom att skapa ett nytt HBase-kluster med hjälp av standardblobcontainern som används av ett borttaget HBase-kluster
Kommentar
Funktionen som kräver säker överföring framtvingar alla begäranden till ditt konto via en säker anslutning. Endast HDInsight-klusterversion 3.6 eller senare stöder den här funktionen. Mer information finns i Skapa Apache Hadoop-kluster med säkra överföringslagringskonton i Azure HDInsight.
Använda ytterligare lagringskonton
När du skapar ett HDInsight-kluster kan du ange ett Azure Storage-konto som du vill koppla det till. Du kan också lägga till ytterligare lagringskonton från samma Azure-prenumeration eller olika Azure-prenumerationer under skapandeprocessen eller efter att ett kluster har skapats. Mer information om hur du lägger till ytterligare lagringskonton finns i Skapa HDInsight-kluster.
Varning
Det går inte att använda ytterligare ett lagringskonto på en annan plats än HDInsight-klustret.
Nästa steg
I den här artikeln fick du lära dig hur du använder det HDFS-kompatibla Azure Storage med HDInsight. Med den här lagringen kan du skapa anpassningsbara, långsiktiga lösningar för arkivering av datainsamling och använda HDInsight för att låsa upp informationen i lagrade strukturerade och ostrukturerade data.
Mer information finns i:
- Snabbstart: Skapa Apache Hadoop-kluster
- Självstudie: Skapa HDInsight-kluster
- Använda Azure Data Lake Storage Gen2 med Azure HDInsight-kluster
- Överföra data till HDInsight
- Självstudie: Extrahera, transformera och läsa in data med hjälp av interaktiv fråga i Azure HDInsight
- Använda signaturer för delad åtkomst i Azure Storage för att begränsa åtkomsten till data med HDInsight