Dela via


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

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

  1. Skapa en fil på lokal lagring.

    touch testFile.txt
    
  2. Skapa kataloger på 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/
    

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: