Använda Azure-lagring med Azure HDInsight-kluster

Du kan lagra data i Azure Blob Storage, Azure Data Lake Storage Gen1 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. När du skapar HDInsight-kluster kan du ange en blobcontainer i Azure Storage som standardfilsystem. Eller så kan du med HDInsight 3.6 välja antingen Azure Blob Storage eller Azure Data Lake Storage Gen1/ Azure Data Lake Storage Gen2 som standardfilsystem med några få undantag. Support för att använda Data Lake Storage Gen1 som både standardlagring och länkad lagring finns i Tillgänglighet för HDInsight-kluster.

I den här artikeln får du lära dig hur Azure Storage fungerar med HDInsight-kluster.

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.

Anteckning

Arkivåtkomstnivån är en offlinenivå som har en svarstid på flera timmars hämtning och som inte rekommenderas för användning med HDInsight. Mer information finns i Arkivåtkomstnivå.

Komma åt filer inifrån klustret

Det finns flera sätt att komma åt filerna i Data Lake Storage från ett HDInsight-kluster. URI-schemat ger okrypterad åtkomst (med wasb: prefix) och TLS-krypterad åtkomst (med wasbs). Vi rekommenderar att du använder wasbs när det är möjligt, även för åtkomst till data som finns i samma region i Azure.

  • 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 klustrets huvudnod. 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 i klusterlagring.

    hdfs dfs -mkdir wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/sampledata1/
    hdfs dfs -mkdir wasbs:///sampledata2/
    hdfs dfs -mkdir /sampledata3/
    
  3. 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/
    
  4. 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/
    

Anteckning

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 illustrerande syfte. 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>Konfigurerar och anger fs.defaultFS i filterindatarutan.

  • Om du vill kontrollera om wasb-arkivet har konfigurerats som sekundär lagring går du till:

    HDFS>Konfigurerar och anger blob.core.windows.net i filterindatarutan.

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 anges 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

Anteckning

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 lagringskonton för överföring 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

Du kan inte använda ett annat 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: