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.
- Zie Azure Data Lake Storage Gen2 gebruiken met Azure HDInsight-clusters voor meer informatie over hoe Data Lake Storage Gen2 werkt met Azure HDInsight-clusters.
- Zie Apache Hadoop-clusters maken in HDInsight voor meer informatie over het maken van een HDInsight-cluster.
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
Maak een bestand in de lokale opslag.
touch testFile.txt
Maak mappen in clusteropslag.
hdfs dfs -mkdir wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/sampledata1/ hdfs dfs -mkdir wasbs:///sampledata2/ hdfs dfs -mkdir /sampledata3/
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/
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:
- Quickstart: Apache Hadoop-cluster maken
- Zelfstudie: HDInsight-clusters maken
- Azure Data Lake Storage Gen2 gebruiken met Azure HDInsight-clusters
- Gegevens uploaden naar HDInsight
- Zelfstudie: Gegevens extraheren, transformeren en laden met behulp van Interactive Query in Azure HDInsight
- Handtekeningen voor gedeelde toegang van Azure Storage gebruiken om de toegang tot gegevens te beperken met HDInsight