Azure-opslag gebruiken met Azure HDInsight-clusters

U kunt gegevens opslaan in Azure Blob Storage, Azure Data Lake Storage Gen1 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 er gebruikersgegevens verloren gaan.

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 Gen1/ Azure Data Lake Storage Gen2 selecteren als het standaardbestandssysteem, met enkele uitzonderingen. Zie Beschikbaarheid voor HDInsight-cluster voor de ondersteuning van het gebruik van Data Lake Storage Gen1 als de standaardopslag en gekoppelde opslag.

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 Standard Premium Dynamisch, Statisch, Archief*
Storage (algemene doeleinden v1) Blob Standard Premium N.v.t.
BlobStorage Blob Standard 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 enkele uren bij het ophalen en wordt niet aanbevolen voor gebruik met HDInsight. Zie Archieftoegangslaag voor meer informatie.

Toegang tot bestanden vanuit een cluster

Er zijn verschillende manieren om toegang te krijgen tot de bestanden in Data Lake Storage vanuit een HDInsight-cluster. Het URI-schema biedt niet-versleutelde toegang (met het voorvoegsel wasb: ) en met TLS versleutelde toegang (met wasbs). Waar mogelijk kunt u het beste wasbs gebruiken, zelfs voor de toegang tot gegevens die zich in dezelfde regio in Azure bevinden.

  • 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 tot aan de clusterhoofdmap 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. Vervang en STORAGEACCOUNT door CONTAINERNAME de relevante waarden

Een paar hdfs-opdrachten

  1. Maak een bestand op 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 voor de werkelijke uitvoering slechts één van de LOCATION vermeldingen.

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 met Azure Storage te werken:

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 in fs.defaultFS het filterinvoervak in.

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

    HDFS>Configuraties en voer in blob.core.windows.net het filterinvoervak in.

Zie De standaardopslag ophalen voor informatie over het verkrijgen van het pad 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 waar het opslagaccount wordt gemaakt. Het cluster en het opslagaccount moeten worden gehost in dezelfde regio. De Hive-metastore SQL Server database en 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 wordt aanbevolen 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 standaardblobcontainer die wordt gebruikt door een verwijderd HBase-cluster

Notitie

De functie waarvoor beveiligde overdracht is vereist , dwingt alle aanvragen voor uw account af via een beveiligde verbinding. Alleen HDInsight-clusterversie 3.6 of hoger ondersteunt deze functie. Zie Apache Hadoop-cluster maken met opslagaccounts voor beveiligde 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 uit hetzelfde Azure-abonnement of verschillende Azure-abonnementen toevoegen 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 verzamelen van gegevens bouwen en HDInsight gebruiken om de informatie in de opgeslagen gestructureerde en ongestructureerde gegevens te ontgrendelen.

Zie voor meer informatie: