Verwenden von Azure Storage mit Azure HDInsight-ClusternUse Azure storage with Azure HDInsight clusters

Zum Analysieren von Daten im HDInsight-Cluster können Sie die Daten in Azure Storage, Azure Data Lake Storage Gen 1/Azure Data Lake Storage Gen2 oder einer Kombination dieser beiden speichern.To analyze data in HDInsight cluster, you can store the data either in Azure Storage, Azure Data Lake Storage Gen 1/Azure Data Lake Storage Gen 2, or a combination. Diese Speichervarianten ermöglichen das sichere Löschen von HDInsight-Clustern, die für Berechnungen verwendet werden, ohne dass Benutzerdaten verloren gehen.These storage options enable you to safely delete HDInsight clusters that are used for computation without losing user data.

Apache Hadoop unterstützt eine Variante des Standarddateisystems.Apache Hadoop supports a notion of the default file system. Das Standarddateisystem gibt ein Standardschema und eine Standardautorität vor.The default file system implies a default scheme and authority. Es kann auch zur Auflösung relativer Pfade verwendet werden.It can also be used to resolve relative paths. Bei der Erstellung des HDInsight-Clusters können Sie einen Blobcontainer in Azure Storage als Standarddateisystem angeben. Mit HDInsight 3.6 können Sie Azure Storage oder Azure Data Lake Storage Gen 1/Azure Data Lake Storage Gen2 als Standarddateisystem auswählen (mit einigen Ausnahmen).During the HDInsight cluster creation process, you can specify a blob container in Azure Storage as the default file system, or with HDInsight 3.6, you can select either Azure Storage or Azure Data Lake Storage Gen 1/ Azure Data Lake Storage Gen 2 as the default files system with a few exceptions. Informationen zur Unterstützung von Data Lake Storage Gen1 als Standardspeicher und als verknüpfter Speicher finden Sie unter Verfügbarkeit für HDInsight-Cluster.For the supportability of using Data Lake Storage Gen 1 as both the default and linked storage, see Availability for HDInsight cluster.

In diesem Artikel erfahren Sie, wie Azure Storage mit HDInsight-Clustern funktioniert.In this article, you learn how Azure Storage works with HDInsight clusters. Informationen zur Funktionsweise von Data Lake Storage Gen1 mit HDInsight-Clustern finden Sie unter Verwenden von Azure Data Lake Storage mit Azure HDInsight-Clustern.To learn how Data Lake Storage Gen 1 works with HDInsight clusters, see Use Azure Data Lake Storage with Azure HDInsight clusters. Weitere Informationen zum Erstellen eines HDInsight-Clusters finden Sie unter Erstellen von Apache Hadoop-Clustern in HDInsight.For more information about creating an HDInsight cluster, see Create Apache Hadoop clusters in HDInsight.

Wichtig

Speicherkonten vom Typ BlobStorage können nur als sekundärer Speicher für HDInsight-Cluster verwendet werden.Storage account kind BlobStorage can only be used as secondary storage for HDInsight clusters.

Art des SpeicherkontosStorage account kind Unterstützte DiensteSupported services Unterstützte LeistungsstufenSupported performance tiers Unterstützte ZugriffsebenenSupported access tiers
StorageV2 (universell v2)StorageV2 (general-purpose v2) BlobBlob StandardStandard Heiß, Kalt, Archiv*Hot, Cool, Archive*
Speicher (general-purpose v1)Storage (general-purpose v1) BlobBlob StandardStandard N/A
BlobStorageBlobStorage BlobBlob StandardStandard Heiß, Kalt, Archiv*Hot, Cool, Archive*

Die Verwendung des Standard-Blobcontainers zum Speichern von Geschäftsdaten wird nicht empfohlen.We don't recommend that you use the default blob container for storing business data. Stattdessen empfiehlt es sich, den Standard-Blobcontainer nach jeder Verwendung zu löschen, um die Speicherkosten zu verringern.Deleting the default blob container after each use to reduce storage cost is a good practice. Der Standardcontainer enthält Anwendungs- und Systemprotokolle.The default container contains application and system logs. Stellen Sie sicher, dass Sie die Protokolle abrufen, bevor Sie den Container löschen.Make sure to retrieve the logs before deleting the container.

Das Freigeben eines Blobcontainers als Standarddateisystem für mehrere Cluster wird nicht unterstützt.Sharing one blob container as the default file system for multiple clusters isn't supported.

Hinweis

Die Archivspeicherebene ist eine Offlineebene, die eine Abrufwartezeit von mehreren Stunden aufweist, und wird für die Verwendung mit HDInsight nicht empfohlen.The Archive access tier is an offline tier that has a several hour retrieval latency and isn't recommended for use with HDInsight. Weitere Informationen finden Sie unter Zugriffsebene „Archiv“.For more information, see Archive access tier.

Zugreifen auf Dateien aus dem ClusterAccess files from the cluster

Es gibt mehrere Möglichkeiten, wie Sie auf die Dateien in Data Lake Storage über einen HDInsight-Cluster zugreifen können.There are several ways you can access the files in Data Lake Storage from an HDInsight cluster. Das URI-Schema bietet unverschlüsselten Zugriff (mit dem Präfix wasb: ) wie auch SSL-verschlüsselten Zugriff (mit wasbs).The URI scheme provides unencrypted access (with the wasb: prefix) and SSL encrypted access (with wasbs). Wir empfehlen die Verwendung von wasbs , und zwar auch für den Zugriff auf Daten, die sich in Azure in derselben Region befinden.We recommend using wasbs wherever possible, even when accessing data that lives inside the same region in Azure.

  • Verwenden des vollqualifizierten NamensUsing the fully qualified name. Bei diesem Ansatz geben Sie den vollständigen Pfad zu der Datei an, auf die Sie zugreifen möchten.With this approach, you provide the full path to the file that you want to access.

    wasb://<containername>@<accountname>.blob.core.windows.net/<file.path>/
    wasbs://<containername>@<accountname>.blob.core.windows.net/<file.path>/
    
  • Verwenden des verkürzten PfadformatsUsing the shortened path format. Bei diesem Ansatz ersetzen Sie den Pfad bis zum Clusterstamm durch:With this approach, you replace the path up to the cluster root with:

    wasb:///<file.path>/
    wasbs:///<file.path>/
    
  • Verwenden des relativen PfadsUsing the relative path. Bei diesem Ansatz geben Sie nur den relativen Pfad zu der Datei an, auf die Sie zugreifen möchten.With this approach, you only provide the relative path to the file that you want to access.

    /<file.path>/
    

Beispiele für DatenzugriffData access examples

Die Beispiele basieren auf einer ssh-Verbindung mit dem Hauptknoten des Clusters.Examples are based on an ssh connection to the head node of the cluster. In den Beispielen werden alle drei URI-Schemas verwendet.The examples use all three URI schemes. Ersetzen Sie CONTAINERNAME und STORAGEACCOUNT durch die entsprechenden Werte.Replace CONTAINERNAME and STORAGEACCOUNT with the relevant values

Ein paar HDFS-BefehleA few hdfs commands

  1. Erstellen einer einfachen Datei im lokalen Speicher.Create a simple file on local storage.

    touch testFile.txt
    
  2. Erstellen von Verzeichnissen im Clusterspeicher.Create directories on cluster storage.

    hdfs dfs -mkdir wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/sampledata1/
    hdfs dfs -mkdir wasbs:///sampledata2/
    hdfs dfs -mkdir /sampledata3/
    
  3. Kopieren von Daten aus dem lokalen Speicher in den Clusterspeicher.Copy data from local storage to cluster storage.

    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. Auflisten von Verzeichnisinhalten im Clusterspeicher.List directory contents on cluster storage.

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

Hinweis

Wenn Blobs außerhalb von HDInsight verwendet werden, wird das WASB-Format von den meisten Dienstprogrammen nicht erkannt. Diese erwartet vielmehr ein grundlegendes Pfadformat wie example/jars/hadoop-mapreduce-examples.jar.When working with blobs outside of HDInsight, most utilities do not recognize the WASB format and instead expect a basic path format, such as example/jars/hadoop-mapreduce-examples.jar.

Erstellen einer Hive-TabelleCreating a Hive table

Zu Zwecken der Veranschaulichung werden drei Speicherorte gezeigt.Three file locations are shown for illustrative purposes. Verwenden Sie für die tatsächliche Ausführung nur einen der LOCATION-Einträge.For actual execution, use only one of the LOCATION entries.

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

Identifizieren des Speicherpfads von AbmariIdentify storage path from Abmari

  • Um den vollständigen Pfad zum konfigurierten Standardspeicher zu ermitteln, navigieren Sie zu:To identify the complete path to the configured default store, navigate to:

    HDFS > Configs, und geben Sie in das Filtereingabefeld fs.defaultFS ein.HDFS > Configs and enter fs.defaultFS in the filter input box.

  • Um zu überprüfen, ob der WASB-Speicher als sekundärer Speicher konfiguriert ist, navigieren Sie zu:To check if wasb store is configured as secondary storage, navigate to:

    HDFS > Configs, und geben Sie in das Filtereingabefeld blob.core.windows.net ein.HDFS > Configs and enter blob.core.windows.net in the filter input box.

BlobcontainerBlob containers

Um Blobs zu verwenden, erstellen Sie zuerst ein Azure-Speicherkonto.To use blobs, you first create an Azure Storage account. Hierzu liegen Sie eine Azure-Region fest, in der das Speicherkonto erstellt wird.As part of this, you specify an Azure region where the storage account is created. Cluster und Speicherkonto müssen sich in der gleichen Region befinden.The cluster and the storage account must be hosted in the same region. Die SQL Server-Datenbanken für den Hive- und Apache Oozie-Metastore müssen sich ebenfalls in der gleichen Region befinden.The Hive metastore SQL Server database and Apache Oozie metastore SQL Server database must also be located in the same region.

Ein Blob gehört unabhängig davon, wo es sich befindet, stets zu einem Container Ihres Azure-Speicherkontos.Wherever it lives, each blob you create belongs to a container in your Azure Storage account. Dieser Container kann ein außerhalb von HDInsight erstelltes Blob sein, oder es handelt sich um einen Container, der für einen HDInsight-Cluster erstellt wird.This container may be an existing blob that was created outside of HDInsight, or it may be a container that is created for an HDInsight cluster.

Der standardmäßige Blobcontainer speichert clusterspezifische Informationen wie etwa Auftragsverlauf und Protokolle.The default Blob container stores cluster-specific information such as job history and logs. Geben Sie einen Standard-Blob-Container nicht für mehrere HDInsight-Cluster frei.Don't share a default Blob container with multiple HDInsight clusters. Dies kann zu einer Beschädigung des Auftragsverlaufs führen.This might corrupt job history. Es wird empfohlen, unterschiedliche Container für die einzelnen Cluster zu verwenden und freigegebene Daten nicht im Standardspeicherkonto, sondern in einem verknüpften Speicherkonto abzulegen, das in der Bereitstellung aller relevanten Cluster angegeben wird.It's recommended to use a different container for each cluster and put shared data on a linked storage account specified in deployment of all relevant clusters rather than the default storage account. Weitere Informationen zum Konfigurieren verknüpfter Speicherkonten finden Sie unter Erstellen von HDInsight-Clustern.For more information on configuring linked storage accounts, see Create HDInsight clusters. Einen Standardspeichercontainer können Sie jedoch auch wiederverwenden, wenn der ursprüngliche HDInsight-Cluster gelöscht wurde.However you can reuse a default storage container after the original HDInsight cluster has been deleted. Bei HBase-Clustern können Sie das HBase-Tabellenschema sowie die darin enthaltenen Daten sogar beibehalten, indem Sie einen neuen HBase-Cluster mit dem Standardblobcontainer erstellen, der von einem gelöschten HBase-Cluster verwendet wurde.For HBase clusters, you can actually keep the HBase table schema and data by creating a new HBase cluster using the default blob container that is used by an HBase cluster that has been deleted.

Hinweis

Das Feature, das eine sichere Übertragung vorschreibt, erzwingt eine sichere Verbindung für alle Anforderungen, die an Ihr Konto gerichtet werden.The feature that requires secure transfer enforces all requests to your account through a secure connection. Dieses Feature wird erst ab HDInsight-Clusterversion 3.6 unterstützt.Only HDInsight cluster version 3.6 or newer supports this feature. Weitere Informationen finden Sie unter Erstellen von Apache Hadoop-Clustern mit Speicherkonten mit sicherer Übertragung in Azure HDInsight.For more information, see Create Apache Hadoop cluster with secure transfer storage accounts in Azure HDInsight.

Interaktion mit Azure-SpeicherInteracting with Azure storage

Microsoft bietet die folgenden Tools für die Arbeit mit Azure Storage:Microsoft provides the following tools to work with Azure Storage:

ToolTool LinuxLinux OS XOS X WindowsWindows
Azure-PortalAzure portal
Azure-BefehlszeilenschnittstelleAzure CLI
Azure PowerShellAzure PowerShell
AzCopyAzCopy

Verwenden zusätzlicher SpeicherkontenUse additional storage accounts

Beim Erstellen eines HDInsight-Clusters geben Sie das Azure Storage-Konto an, dem Sie es zuordnen möchten.While creating an HDInsight cluster, you specify the Azure Storage account you want to associate with it. Zusätzlich zu diesem Speicherkonto können Sie während des Erstellungsprozesses oder nach der Erstellung eines Clusters weitere Speicherkonten aus dem gleichen oder einem anderen Azure-Abonnement hinzufügen.In addition to this storage account, you can add additional storage accounts from the same Azure subscription or different Azure subscriptions during the creation process or after a cluster has been created. Informationen zum Hinzufügen zusätzlicher Speicherkonten finden Sie unter Erstellen von HDInsight-Clustern.For instructions about adding additional storage accounts, see Create HDInsight clusters.

Warnung

Die Verwendung eines zusätzlichen Speicherkontos an einem anderen Ort als dem HDInsight-Cluster wird nicht unterstützt.Using an additional storage account in a different location than the HDInsight cluster is not supported.

Nächste SchritteNext steps

In diesem Artikel wurde beschrieben, wie Sie HDFS-kompatiblen Azure Storage mit HDInsight verwenden.In this article, you learned how to use HDFS-compatible Azure storage with HDInsight. Dadurch können Sie skalierbare Datenerfassungslösungen mit langfristiger Archivierung aufbauen und HDInsight verwenden, um die Informationen innerhalb der gespeicherten strukturierten und unstrukturierten Daten zu entsperren.This allows you to build scalable, long-term, archiving data acquisition solutions and use HDInsight to unlock the information inside the stored structured and unstructured data.

Weitere Informationen finden Sie unterFor more information, see: