Share via


Azure-opslag gebruiken met Azure HDInsight-clusters

U kunt gegevens opslaan in Azure Blob Storage of Azure Data Lake Storage Gen2. Of een combinatie van deze opties. Met deze opslagopties kunt u HDInsight-clusters die worden gebruikt voor berekeningen veilig verwijderen zonder dat u gebruikersgegevens kwijtraakt.

Apache Hadoop ondersteunt een idee van het standaardbestandssysteem. Het standaardbestandssysteem impliceert een standaardschema en instantie. De toepassing kan ook worden gebruikt om relatieve paden om te zetten. Tijdens het maken van het HDInsight-cluster kunt u een blobcontainer in Azure Storage opgeven als het standaardbestandssysteem. Of met HDInsight 3.6 kunt u Azure Blob Storage of Azure Data Lake Storage Gen2 selecteren als het standaardbestandensysteem met een paar uitzonderingen.

In dit artikel wordt uitgelegd hoe Azure Storage werkt met HDInsight-clusters.

Belangrijk

BlobStorage voor opslagaccounts kan alleen worden gebruikt als secundaire opslag voor HDInsight-clusters.

Opslagaccounttype Ondersteunde services Ondersteunde prestatielagen Niet-ondersteunde prestatielagen Ondersteunde toegangslagen
StorageV2 (algemeen gebruik v2) Blob Standaard Premium Dynamisch, statisch, archief*
Storage (algemene doeleinden v1) Blob Standaard Premium N.v.t.
BlobStorage Blob Standaard Premium Dynamisch, statisch, archief*

Het is niet raadzaam om de standaard-blobcontainer te gebruiken voor het opslaan van bedrijfsgegevens. Het is een goede gewoonte om de standaard-blobcontainer na ieder gebruik te verwijderen om de opslagkosten te verlagen. De standaardcontainer bevat toepassings- en systeemlogboeken. Breng de logboeken over naar een andere locatie voordat u de container verwijdert.

Het delen van één blobcontainer als het standaardbestandssysteem voor meerdere clusters wordt niet ondersteund.

Notitie

De archieftoegangslaag is een offlinelaag met een latentie van het ophalen van een aantal uur en wordt niet aanbevolen voor gebruik met HDInsight. Zie archieftoegangslaag voor meer informatie.

Bestanden openen vanuit een cluster

Notitie

Het Azure Storage-team heeft alle actieve ontwikkelingen op WASB stopgezet en alle klanten aangeraden het ABFS-stuurprogramma te gebruiken om te communiceren met Blob en ADLS Gen2. Zie het stuurprogramma azure Blob Filesystem (ABFS) voor meer informatie: een toegewezen Azure Storage-stuurprogramma voor Hadoop

  • De volledig gekwalificeerde naam gebruiken. Met deze methode geeft u het volledige pad op naar het bestand dat u wilt openen.

    wasb://<containername>@<accountname>.blob.core.windows.net/<file.path>/
    wasbs://<containername>@<accountname>.blob.core.windows.net/<file.path>/
    
  • De verkorte padnotatie gebruiken. Met deze methode vervangt u het pad naar de hoofdmap van het cluster door:

    wasb:///<file.path>/
    wasbs:///<file.path>/
    
  • Het relatieve pad gebruiken. Met deze methode geeft u alleen het volledige relatieve pad op naar het bestand dat u wilt openen.

    /<file.path>/
    

Voorbeelden van gegevenstoegang

Voorbeelden zijn gebaseerd op een SSH-verbinding met het hoofdknooppunt van het cluster. In de voorbeelden worden alle drie de URI-schema's gebruikt. Vervangen CONTAINERNAME en STORAGEACCOUNT door de relevante waarden

Een paar HDFS-opdrachten

  1. Maak een bestand in de lokale opslag.

    touch testFile.txt
    
  2. Maak mappen in clusteropslag.

    hdfs dfs -mkdir wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/sampledata1/
    hdfs dfs -mkdir wasbs:///sampledata2/
    hdfs dfs -mkdir /sampledata3/
    
  3. Gegevens kopiëren van lokale opslag naar clusteropslag.

    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. Lijst met mapinhoud op clusteropslag.

    hdfs dfs -ls wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/sampledata1/
    hdfs dfs -ls wasbs:///sampledata2/
    hdfs dfs -ls /sampledata3/
    

Notitie

Als u buiten HDInsight met blobs werkt, zullen de meeste hulpprogramma's de indeling WASB niet herkennen en wordt er in plaats daarvan een standaardpadindeling verwacht, zoals example/jars/hadoop-mapreduce-examples.jar.

Een Hive-tabel maken

Er worden drie bestandslocaties weergegeven voor illustratieve doeleinden. Gebruik slechts één van de LOCATION vermeldingen voor de werkelijke uitvoering.

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/';

Toegang tot bestanden van buiten het cluster

Microsoft biedt de volgende hulpprogramma's om te werken met Azure Storage:

Hulpprogramma Linux OS X Windows
Azure-portal
Azure-CLI
Azure PowerShell
AzCopy

Opslagpad van Ambari identificeren

  • Als u het volledige pad naar het geconfigureerde standaardarchief wilt identificeren, gaat u naar:

    HDFS-configuraties> en voer fs.defaultFS het invoervak van het filter in.

  • Als u wilt controleren of wasb-archief is geconfigureerd als secundaire opslag, gaat u naar:

    HDFS-configuraties> en voer blob.core.windows.net het invoervak van het filter in.

Zie De standaardopslag ophalen om het pad te verkrijgen met behulp van de Ambari REST API.

Blobcontainers

Als u blobs wilt gebruiken, maakt u eerst een Azure Storage-account. Als onderdeel van deze stap geeft u een Azure-regio op waarin het opslagaccount wordt gemaakt. Het cluster en het opslagaccount moeten worden gehost in dezelfde regio. De Hive-metastore SQL Server-database en de Apache Oozie-metastore SQL Server-database moeten zich in dezelfde regio bevinden.

Elke blob die u maakt, behoort tot een container in uw Azure Storage-account, ongeacht de locatie van de blob. Deze container kan een bestaande blob zijn die buiten HDInsight is gemaakt. Het kan ook een container zijn die is gemaakt voor een HDInsight-cluster.

In de standaard blobcontainer worden clusterspecifieke gegevens opgeslagen, zoals taakgeschiedenis en logboeken. Deel een standaard blob-container niet met meerdere HDInsight-clusters. Deze actie kan de taakgeschiedenis beschadigen. Het is raadzaam om voor elk cluster een andere container te gebruiken. Plaats gedeelde gegevens in een gekoppeld opslagaccount dat is opgegeven voor alle relevante clusters in plaats van het standaardopslagaccount. Zie HDInsight-clusters maken voor meer informatie over het configureren van gekoppelde opslagaccounts. U kunt een standaardopslagcontainer echter opnieuw gebruiken nadat het oorspronkelijke HDInsight-cluster is verwijderd. Voor HBase-clusters kunt u het HBase-tabelschema en de gegevens daadwerkelijk behouden door een nieuw HBase-cluster te maken met behulp van de standaard-blobcontainer die wordt gebruikt door een verwijderd HBase-cluster

Notitie

Met de functie waarvoor beveiligde overdracht is vereist, worden alle aanvragen voor uw account afgedwongen via een beveiligde verbinding. Alleen HDInsight-clusterversie 3.6 of hoger ondersteunt deze functie. Zie Apache Hadoop-cluster maken met opslagaccounts voor veilige overdracht in Azure HDInsight voor meer informatie.

Extra opslagaccounts gebruiken

Tijdens het maken van een HDInsight-cluster geeft u het Azure Storage-account op dat u ermee wilt koppelen. U kunt ook extra opslagaccounts toevoegen uit hetzelfde Azure-abonnement of verschillende Azure-abonnementen tijdens het maken of nadat een cluster is gemaakt. Zie HDInsight-clusters maken voor instructies over het toevoegen van extra opslagaccounts.

Waarschuwing

Het gebruik van een extra opslagaccount op een andere locatie dan het HDInsight-cluster wordt niet ondersteund.

Volgende stappen

In dit artikel hebt u geleerd hoe u HDFS-compatibele Azure-opslag kunt gebruiken met HDInsight. Met deze opslag kunt u aanpasbare, langetermijnoplossingen voor het archiveren van gegevens bouwen en HDInsight gebruiken om de informatie in de opgeslagen gestructureerde en ongestructureerde gegevens te ontgrendelen.

Zie voor meer informatie: