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.

Azure Storage stellt eine robuste, universelle Speicherlösung dar, die problemlos mit HDInsight integriert werden kann.Azure storage is a robust, general-purpose storage solution that integrates seamlessly with HDInsight. In HDInsight kann ein Blobcontainer in Azure Storage als Standarddateisystem für den Cluster verwendet werden.HDInsight can use a blob container in Azure Storage as the default file system for the cluster. Über eine HDFS-Schnittstelle (Hadoop Distributed File System) können sämtliche Komponenten in HDInsight direkt mit strukturierten oder unstrukturierten Daten arbeiten, die als Blobs gespeichert sind.Through a Hadoop distributed file system (HDFS) interface, the full set of components in HDInsight can operate directly on structured or unstructured data stored as blobs.

Warnung

Beim Erstellen eines Azure Storage-Kontos stehen Ihnen mehrere Optionen zur Verfügung.There are several options available when creating an Azure Storage account. Die folgende Tabelle enthält Informationen dazu, welche Optionen mit HDInsight unterstützt werden:The following table provides information on what options are supported with HDInsight:

SpeicherkontotypStorage account type Unterstützte DiensteSupported services Unterstützte LeistungsstufenSupported performance tiers Unterstützte ZugriffsebenenSupported access tiers
Allgemein v2General-purpose V2 BlobBlob StandardStandard Heiß, Kalt, Archiv*Hot, Cool, Archive*
Allgemein v1General-purpose V1 BlobBlob StandardStandard N/A
Blob StorageBlob storage BlobBlob StandardStandard Heiß, Kalt, Archiv*Hot, Cool, Archive*

Die Verwendung des Standard-Blobcontainers zum Speichern von Geschäftsdaten wird nicht empfohlen.We do not 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 is not supported.

Hinweis

Die Zugriffsebene „Archiv“ 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 is not recommended for use with HDInsight. Weitere Informationen finden Sie unter Zugriffsebene „Archiv“.For more information, see Archive access tier.

Wenn Sie sich dazu entscheiden, Ihr Speicherkonto mit den Firewalls und virtuelle Netzwerke-Einschränkungen auf Ausgewählte Netzwerke zu schützen, denken Sie daran, die Ausnahme Vertrauenswürdige Microsoft-Dienste zulassen… zu aktivieren, damit HDInsight auf Ihr Speicherkonto zugreifen kann.If you choose to secure your storage account with the Firewalls and virtual networks restrictions on Selected networks, be sure to enable the exception Allow trusted Microsoft services... so that HDInsight can access your storage account.

HDInsight-SpeicherarchitekturHDInsight storage architecture

Das folgende Diagramm bietet einen zusammenfassenden Überblick über die HDInsight-Speicherarchitektur bei der Verwendung von Azure Storage:The following diagram provides an abstract view of the HDInsight storage architecture of using Azure Storage:

Hadoop-Cluster verwenden die HDFS-API, um auf strukturierte und unstrukturierte Daten im Blobspeicher zuzugreifen und diese zu speichern.Hadoop clusters use the HDFS API to access and store structured and unstructured data in Blob storage.

HDInsight bietet Zugang zum verteilten Dateisystem, das lokal an die Rechenknoten angefügt ist.HDInsight provides access to the distributed file system that is locally attached to the compute nodes. Auf dieses Dateisystem kann über den vollständig qualifizierten URI zugegriffen werden. Zum Beispiel:This file system can be accessed by using the fully qualified URI, for example:

hdfs://<namenodehost>/<path>

Zusätzlich bietet HDInsight die Möglichkeit, auf die in Azure Storage gespeicherten Daten zuzugreifen.In addition, HDInsight allows you to access data that is stored in Azure Storage. Die Syntax ist:The syntax is:

wasb[s]://<containername>@<accountname>.blob.core.windows.net/<path>

Hier sind einige Aspekte beim Verwenden eines Azure Storage-Kontos mit HDInsight-Clustern.Here are some considerations when using Azure Storage account with HDInsight clusters.

  • Container in Speicherkonten, die mit einem Cluster verbunden sind: Da Kontoname und Schlüssel dem Cluster bei der Erstellung zugeordnet werden, haben Sie vollständigen Zugriff auf die Blobs in diesen Containern.Containers in the storage accounts that are connected to a cluster: Because the account name and key are associated with the cluster during creation, you have full access to the blobs in those containers.

  • Öffentliche Container oder öffentliche Blobs in Speicherkonten, die NICHT mit einem Cluster verbunden sind: Sie verfügen über Leserechte für die Blobs in den Containern.Public containers or public blobs in storage accounts that are NOT connected to a cluster: You have read-only permission to the blobs in the containers.

    Hinweis

    Öffentliche Container erlauben das Abrufen einer Liste aller im Container verfügbaren Blobs und der Container-Metadaten.Public containers allow you to get a list of all blobs that are available in that container and get container metadata. Auf öffentliche Blobs haben Sie nur Zugriff, wenn Sie die exakte URL kennen.Public blobs allow you to access the blobs only if you know the exact URL. Weitere Informationen finden Sie unter Verwalten des Zugriffs auf Container und Blobs.For more information, see Manage access to containers and blobs.

  • Private Container in Speicherkonten, die NICHT mit einem Cluster verbunden sind: Sie können nicht auf die Blobs in den Containern zugreifen, es sei denn, Sie definieren beim Senden der WebHCat-Aufträge das Speicherkonto.Private containers in storage accounts that are NOT connected to a cluster: You can't access the blobs in the containers unless you define the storage account when you submit WebHCat jobs. Dies wird weiter unten im Artikel erläutert.This is explained later in this article.

Die bei der Erstellung definierten Speicherkonten und ihre Schlüssel werden in der Datei „%HADOOP_HOME%/conf/core-site.xml“ auf den Clusterknoten gespeichert.The storage accounts that are defined in the creation process and their keys are stored in %HADOOP_HOME%/conf/core-site.xml on the cluster nodes. Standardmäßig verwendet HDInsight die in der Datei core-site.xml definierten Speicherkonten.The default behavior of HDInsight is to use the storage accounts defined in the core-site.xml file. Sie können diese Einstellung mit Apache Ambari ändern.You can modify this setting using Apache Ambari.

Verschiedene WebHCat-Aufträge, darunter Apache Hive, MapReduce, Apache Hadoop Streaming und Apache Pig, können eine Beschreibung von Speicherkonten und Metadaten enthalten.Multiple WebHCat jobs, including Apache Hive, MapReduce, Apache Hadoop streaming, and Apache Pig, can carry a description of storage accounts and metadata with them. (Dies funktioniert momentan nur für Pig und Speicherkonten, nicht für Metadaten.) Weitere Informationen finden Sie unter Verwenden eines HDInsight-Clusters mit alternativen Speicherkonten und Metastores.(This currently works for Pig with storage accounts, but not for metadata.) For more information, see Using an HDInsight Cluster with Alternate Storage Accounts and Metastores.

Blobs können für strukturierte und unstrukturierte Daten verwendet werden.Blobs can be used for structured and unstructured data. In Blobcontainern werden Daten als Schlüssel-Wert-Paare gespeichert, und es gibt keine Verzeichnishierarchie.Blob containers store data as key/value pairs, and there is no directory hierarchy. Allerdings kann im Schlüsselnamen der Schrägstrich (/) verwendet werden, damit es so aussieht, als wäre eine Datei in einer Verzeichnisstruktur gespeichert.However the slash character ( / ) can be used within the key name to make it appear as if a file is stored within a directory structure. Der Schlüssel eines Blobs kann z. B. input/log1.txt heißen.For example, a blob's key may be input/log1.txt. Das Verzeichnis input existiert zwar nicht, wegen des Schrägstrichs (/) im Schlüsselnamen sieht es jedoch so aus, als gäbe es einen Dateipfad.No actual input directory exists, but due to the presence of the slash character in the key name, it has the appearance of a file path.

Vorteile von Azure StorageBenefits of Azure Storage

Der Leistungsaufwand, der damit verbunden ist, dass die Computecluster und Speicherressourcen nicht an demselben Ort vorliegen, wird dadurch verringert, dass die Computecluster nahe an den Speicherkontoressourcen in der Azure-Region erstellt werden. Hier macht das Hochgeschwindigkeitsnetzwerk den Zugriff auf die Daten im Azure-Speicher für die Serverknoten effizient.The implied performance cost of not co-locating compute clusters and storage resources is mitigated by the way the compute clusters are created close to the storage account resources inside the Azure region, where the high-speed network makes it efficient for the compute nodes to access the data inside Azure storage.

Die Speicherung von Daten im Azure-Speicher anstatt im HDFS hat mehrere Vorteile:There are several benefits associated with storing the data in Azure storage instead of HDFS:

  • Datenwiederverwendung und -freigabe: Die Daten im HDFS befinden sich innerhalb des Computeclusters.Data reuse and sharing: The data in HDFS is located inside the compute cluster. Nur die Anwendungen, die Zugriff auf den Rechencluster haben, können die Daten über die HDFS-API verwenden.Only the applications that have access to the compute cluster can use the data by using HDFS APIs. Auf die Dateien im Azure-Speicher kann entweder über die HDFS-APIs oder über die Blob Storage-REST-APIs zugegriffen werden.The data in Azure storage can be accessed either through the HDFS APIs or through the Blob Storage REST APIs. Somit kann eine größere Menge von Anwendungen (darunter andere HDInsight-Cluster) und Tools verwendet werden, um die Daten zu produzieren und abzurufen.Thus, a larger set of applications (including other HDInsight clusters) and tools can be used to produce and consume the data.
  • Datenarchivierung: Die Speicherung von Daten im Azure-Speicher sorgt dafür, dass die HDInsight-Cluster, die für Berechnungen verwendet werden, sicher gelöscht werden können, ohne Benutzerdaten zu verlieren.Data archiving: Storing data in Azure storage enables the HDInsight clusters used for computation to be safely deleted without losing user data.
  • Datenspeicherkosten: Die langfristige Datenspeicherung in DFS ist kostspieliger als die Datenspeicherung im Azure-Speicher, da die Kosten eines Computeclusters höher als die Kosten für Azure-Speicher sind.Data storage cost: Storing data in DFS for the long term is more costly than storing the data in Azure storage because the cost of a compute cluster is higher than the cost of Azure storage. Da die Daten nicht für jede Erzeugung eines neues Rechenclusters neu geladen werden, sparen Sie auch Kosten für das Laden von Daten.In addition, because the data does not have to be reloaded for every compute cluster generation, you are also saving data loading costs.
  • Elastische horizontale Skalierung: Auch wenn HDFS ein horizontal skaliertes Dateisystem bietet, wird die Skalierung durch die Anzahl der Knoten bestimmt, die Sie für Ihren Cluster erstellen.Elastic scale-out: Although HDFS provides you with a scaled-out file system, the scale is determined by the number of nodes that you create for your cluster. Eine Änderung der Skalierung kann weitaus schwieriger werden, als auf die flexiblen Speicherkapazitäten zu vertrauen, die Ihnen der Azure-Speicher automatisch bietet.Changing the scale can become a more complicated process than relying on the elastic scaling capabilities that you get automatically in Azure storage.
  • Georeplikation: Für den Azure-Speicher kann eine Georeplikation durchgeführt werden.Geo-replication: Your Azure storage can be geo-replicated. Obwohl Sie dadurch von geographischer Wiederherstellung und Datenredundanz profitieren, wirkt sich ein Ausfall des georeplizierten Standorts schwer auf Ihre Leistung aus und kann zusätzliche Kosten nach sich ziehen.Although this gives you geographic recovery and data redundancy, a failover to the geo-replicated location severely impacts your performance, and it may incur additional costs. Deshalb empfehlen wir, die Georeplikation mit Bedacht auszuwählen und nur dann anzuwenden, wenn der Wert der Daten die zusätzlichen Kosten rechtfertigt.So our recommendation is to choose the geo-replication wisely and only if the value of the data is worth the additional cost.

Bestimmte MapReduce-Aufträge und -Pakete können zu Zwischenergebnissen führen, die Sie eher nicht im Azure-Speicher speichern möchten.Certain MapReduce jobs and packages may create intermediate results that you don't really want to store in Azure storage. In diesem Fall können Sie die Dateien auch im lokalen HDFS speichern.In that case, you can elect to store the data in the local HDFS. Tatsächlich verwendet HDInsight DFS für einige dieser Zwischenergebnisse in Hive-Jobs und anderen Prozessen.In fact, HDInsight uses DFS for several of these intermediate results in Hive jobs and other processes.

Hinweis

Die meisten HDFS-Befehle (z. B. ls, copyFromLocal und mkdir) funktionieren weiterhin wie erwartet.Most HDFS commands (for example, ls, copyFromLocal and mkdir) still work as expected. Nur die für die native HDFS-Implementierung (als DFS bezeichnet) spezifischen Befehle wie fschk und dfsadmin zeigen im Azure-Speicher ein anderes Verhalten.Only the commands that are specific to the native HDFS implementation (which is referred to as DFS), such as fschk and dfsadmin, show different behavior in Azure storage.

Erstellen eines Blob-ContainersCreate Blob 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 is 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 retain 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.

Verwenden des Azure-PortalsUse the Azure portal

Beim Erstellen eines HDInsight-Clusters über das Portal können Sie Optionen zum Angeben der Details zum Speicherkonto nutzen (wie unten dargestellt).When creating an HDInsight cluster from the Portal, you have the options (as shown below) to provide the storage account details. Sie können auch angeben, ob dem Cluster ein zusätzliches Speicherkonto zugeordnet werden soll. Wenn ja, können Sie Data Lake Storage oder ein anderes Azure Storage-Blob als zusätzlichen Speicher auswählen.You can also specify whether you want an additional storage account associated with the cluster, and if so, choose from Data Lake Storage or another Azure Storage blob as the additional storage.

HDInsight, Hadoop, Erstellung, Datenquelle

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.

Mithilfe von Azure PowerShellUse Azure PowerShell

Hinweis

Dieser Artikel wurde aktualisiert und beinhaltet jetzt das neue Az-Modul von Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Weitere Informationen zum neuen Az-Modul und zur Kompatibilität mit AzureRM finden Sie unter Introducing the new Azure PowerShell Az module (Einführung in das neue Az-Modul von Azure PowerShell).To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Anweisungen zur Installation finden Sie unter Install Azure PowerShell (Installieren von Azure PowerShell).For installation instructions, see Install Azure PowerShell.

Nach dem Installieren und Konfigurieren von Azure PowerShell können Sie ein Speicherkonto und einen Container wie folgt an der Azure PowerShell-Eingabeaufforderung erstellen:If you installed and configured Azure PowerShell, you can use the following from the Azure PowerShell prompt to create a storage account and container:

Wichtig

Die Azure PowerShell-Unterstützung zum Verwalten von HDInsight-Ressourcen mithilfe von Azure Service Manager ist veraltet und wurde zum 1. Januar 2017 eingestellt.Azure PowerShell support for managing HDInsight resources using Azure Service Manager is deprecated, and was removed on January 1, 2017. Die Schritte in diesem Dokument zeigen die neuen HDInsight-Cmdlets, die mit Azure Resource Manager genutzt werden können.The steps in this document use the new HDInsight cmdlets that work with Azure Resource Manager.

Führen Sie zur Installation der neuesten Version von Azure PowerShell die unter Installieren und Konfigurieren von Azure PowerShell beschriebenen Schritte aus.Please follow the steps in Install and configure Azure PowerShell to install the latest version of Azure PowerShell. Wenn Sie über Skripts verfügen, die für die Verwendung der neuen Cmdlets für Azure Resource Manager geändert werden müssen, finden Sie unter Migrieren zu Azure Resource Manager-basierten Entwicklungstools für HDInsight-Cluster weitere Informationen.If you have scripts that need to be modified to use the new cmdlets that work with Azure Resource Manager, see Migrating to Azure Resource Manager-based development tools for HDInsight clusters for more information.

$SubscriptionID = "<Your Azure Subscription ID>"
$ResourceGroupName = "<New Azure Resource Group Name>"
$Location = "EAST US 2"

$StorageAccountName = "<New Azure Storage Account Name>"
$containerName = "<New Azure Blob Container Name>"

Connect-AzAccount
Select-AzSubscription -SubscriptionId $SubscriptionID

# Create resource group
New-AzResourceGroup -name $ResourceGroupName -Location $Location

# Create default storage account
New-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName -Location $Location -Type Standard_LRS 

# Create default blob containers
$storageAccountKey = (Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName -StorageAccountName $StorageAccountName)[0].Value
$destContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey  
New-AzStorageContainer -Name $containerName -Context $destContext

Verwenden der klassischen Azure CLIUse Azure Classic CLI

Wichtig

Für die Inhalte dieses Artikels wird die klassische Azure-Befehlszeilenschnittstelle benötigt.This article contains content that requires the Azure classic CLI. Die klassische Befehlszeilenschnittstelle ist erforderlich, da das aktuelle Release der Azure-Befehlszeilenschnittstelle die in diesem Artikel beschriebenen Features nicht unterstützt.The current release of the Azure CLI doesn't have support for the features outlined in this article, so the classic CLI is required.

Die klassische Befehlszeilenschnittstelle kann parallel zur modernen Azure-Befehlszeilenschnittstelle installiert werden. Es empfiehlt sich jedoch, für alle neuen Skripts und Implementierungen die Azure-Befehlszeilenschnittstelle zu verwenden (sofern die Features unterstützt werden).The classic CLI can be installed side by side with the modern Azure CLI, but we recommend the Azure CLI for all new scripts and deployments where feature support is available. Informationen zur Installation der klassischen Befehlszeilenschnittstelle finden Sie unter Installieren der klassischen Azure CLI.To install the classic CLI, see Install the Azure classic CLI. Informationen zur Installation der aktuellen Befehlszeilenschnittstelle finden Sie unter Installieren der Azure CLI.To install the current CLI, see Install the Azure CLI.

Wenn Sie die klassische Befehlszeilenschnittstelle von Azure (Azure-CLI) installiert und konfiguriert haben, können Sie zur Erstellung eines Speicherkontos und Containers den folgenden Befehl verwenden.If you have installed and configured the Azure Classic CLI, the following command can be used to a storage account and container.

azure storage account create <storageaccountname> --type LRS

Hinweis

Der Parameter --type gibt an, wie das Speicherkonto repliziert wird.The --type parameter indicates how the storage account is replicated. Weitere Informationen finden Sie unter Azure-Speicherreplikation.For more information, see Azure Storage Replication. Verwenden Sie keinen ZRS, da ZRS keine Seitenblobs, Dateien, Tabellen oder Warteschlangen unterstützt.Don't use ZRS as ZRS doesn't support page blob, file, table, or queue.

Sie werden zum Angeben der geografischen Region aufgefordert, in der das Speicherkonto erstellt wird.You are prompted to specify the geographic region that the storage account is created in. Das Speicherkonto sollte in derselben Region erstellt werden, in der der HDInsight-Cluster erstellt werden soll.You should create the storage account in the same region that you plan on creating your HDInsight cluster.

Nach der Erstellung des Speicherkontos können Sie den Schlüssel des Speicherkontos mit dem folgenden Befehl abrufen:Once the storage account is created, use the following command to retrieve the storage account keys:

azure storage account keys list <storageaccountname>

Zum Erstellen eines Containers verwenden Sie den folgenden Befehl:To create a container, use the following command:

azure storage container create <containername> --account-name <storageaccountname> --account-key <storageaccountkey>

Zugreifen auf Dateien in Azure-SpeicherAddress files in Azure storage

Das URI-Schema für den Zugriff auf Dateien in Azure-Speicher aus HDInsight lautet:The URI scheme for accessing files in Azure storage from HDInsight is:

wasb[s]://<BlobStorageContainerName>@<StorageAccountName>.blob.core.windows.net/<path>

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.

<BlobStorageContainerName> ist der Name des Blobcontainers im Azure-Speicher.The <BlobStorageContainerName> identifies the name of the blob container in Azure storage. <StorageAccountName> ist der Name des Azure-Speicherkontos.The <StorageAccountName> identifies the Azure Storage account name. Ein vollqualifizierter Domänenname (FQDN) ist erforderlich.A fully qualified domain name (FQDN) is required.

Wenn weder <BlobStorageContainerName> noch <StorageAccountName> angegeben ist, wird das Standarddateisystem verwendet.If neither <BlobStorageContainerName> nor <StorageAccountName> has been specified, the default file system is used. Für die Dateien im Standarddateisystem können Sie relative oder absolute Pfade verwenden.For the files on the default file system, you can use a relative path or an absolute path. Auf die Datei hadoop-mapreduce-examples.jar, die sich in HDInsight-Clustern befindet, kann z. B. mit einem der folgenden Befehle verwiesen werden:For example, the hadoop-mapreduce-examples.jar file that comes with HDInsight clusters can be referred to by using one of the following:

wasb://mycontainer@myaccount.blob.core.windows.net/example/jars/hadoop-mapreduce-examples.jar
wasb:///example/jars/hadoop-mapreduce-examples.jar
/example/jars/hadoop-mapreduce-examples.jar

Hinweis

In HDInsight-Clustern der Version 2.1 und 1.6 lautet der Dateiname hadoop-examples.jar.The file name is hadoop-examples.jar in HDInsight versions 2.1 and 1.6 clusters.

<path> ist der HDFS-Pfadname der Datei oder des Verzeichnisses.The <path> is the file or directory HDFS path name. Da es sich bei Containern im Azure-Speicher um Schlüssel-Wert-Paare handelt, wird kein echtes hierarchisches Dateisystem verwendet.Because containers in Azure storage are key-value stores, there is no true hierarchical file system. Ein Schrägstrich (/) in einem Blobschlüssel wird als Verzeichnistrennzeichen interpretiert.A slash character ( / ) inside a blob key is interpreted as a directory separator. Der Blob-Name für hadoop-mapreduce-examples.jar lautet z. B.:For example, the blob name for hadoop-mapreduce-examples.jar is:

example/jars/hadoop-mapreduce-examples.jar

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.

Zugreifen auf BlobsAccess blobs

Verwenden von Azure PowerShellUse Azure PowerShell

Hinweis

In diesem Abschnitt wird anhand eines einfachen Beispiels gezeigt, wie Sie mit PowerShell-Befehlen auf in Blobs gespeicherte Daten zugreifen.The commands in this section provide a basic example of using PowerShell to access data stored in blobs. Ein komplexeres, speziell auf HDInsight zugeschnittenes Beispiel, das mehr Funktionen verwendet, finden Sie unter HDInsight-Tools.For a more full-featured example that is customized for working with HDInsight, see the HDInsight Tools.

Verwenden Sie den folgenden Befehl, um die Blob-bezogenen Cmdlets aufzulisten:Use the following command to list the blob-related cmdlets:

Get-Command *blob*

Liste der Blob-bezogenen PowerShell-Cmdlets.

Hochladen von DateienUpload files

Siehe Hochladen von Daten in HDInsight.See Upload data to HDInsight.

Herunterladen von DateienDownload files

Mit dem folgenden Skript wird ein Blockblob in das aktuelle Verzeichnis heruntergeladen.The following script downloads a block blob to the current folder. Wechseln Sie vor der Ausführung des Skripts in ein Verzeichnis, für das Sie Schreibberechtigungen haben.Before running the script, change the directory to a folder where you have write permissions.

$resourceGroupName = "<AzureResourceGroupName>"
$storageAccountName = "<AzureStorageAccountName>"   # The storage account used for the default file system specified at creation.
$containerName = "<BlobStorageContainerName>"  # The default file system container has the same name as the cluster.
$blob = "example/data/sample.log" # The name of the blob to be downloaded.

# Use Add-AzureAccount if you haven't connected to your Azure subscription
Connect-AzAccount 
Select-AzSubscription -SubscriptionID "<Your Azure Subscription ID>"

Write-Host "Create a context object ... " -ForegroundColor Green
$storageAccountKey = (Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName -Name $storageAccountName)[0].Value
$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey  

Write-Host "Download the blob ..." -ForegroundColor Green
Get-AzStorageBlobContent -Container $ContainerName -Blob $blob -Context $storageContext -Force

Write-Host "List the downloaded file ..." -ForegroundColor Green
cat "./$blob"

Bei Angabe des Ressourcengruppen- und Clusternamens können Sie den folgenden Code verwenden:Providing the resource group name and the cluster name, you can use the following code:

$resourceGroupName = "<AzureResourceGroupName>"
$clusterName = "<HDInsightClusterName>"
$blob = "example/data/sample.log" # The name of the blob to be downloaded.

$cluster = Get-AzHDInsightCluster -ResourceGroupName $resourceGroupName -ClusterName $clusterName
$defaultStorageAccount = $cluster.DefaultStorageAccount -replace '.blob.core.windows.net'
$defaultStorageAccountKey = (Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName -Name $defaultStorageAccount)[0].Value
$defaultStorageContainer = $cluster.DefaultStorageContainer
$storageContext = New-AzStorageContext -StorageAccountName $defaultStorageAccount -StorageAccountKey $defaultStorageAccountKey 

Write-Host "Download the blob ..." -ForegroundColor Green
Get-AzStorageBlobContent -Container $defaultStorageContainer -Blob $blob -Context $storageContext -Force

Löschen von DateienDelete files

Remove-AzStorageBlob -Container $containerName -Context $storageContext -blob $blob

Auflisten von DateienList files

Get-AzStorageBlob -Container $containerName -Context $storageContext -prefix "example/data/"

Ausführen von Hive-Abfragen mit einem nicht definierten SpeicherkontoRun Hive queries using an undefined storage account

Dieses Beispiel zeigt, wie der Inhalt eines Ordners eines Speicherkontos aufgelistet wird, der beim Erstellungsprozess nicht definiert wurde.This example shows how to list a folder from storage account that is not defined during the creating process.

$clusterName = "<HDInsightClusterName>"

$undefinedStorageAccount = "<UnboundedStorageAccountUnderTheSameSubscription>"
$undefinedContainer = "<UnboundedBlobContainerAssociatedWithTheStorageAccount>"

$undefinedStorageKey = Get-AzStorageKey $undefinedStorageAccount | %{ $_.Primary }

Use-AzHDInsightCluster $clusterName

$defines = @{}
$defines.Add("fs.azure.account.key.$undefinedStorageAccount.blob.core.windows.net", $undefinedStorageKey)

Invoke-AzHDInsightHiveJob -Defines $defines -Query "dfs -ls wasb://$undefinedContainer@$undefinedStorageAccount.blob.core.windows.net/;"

Verwenden der klassischen Azure CLIUse Azure Classic CLI

Verwenden Sie den folgenden Befehl, um die Blob-bezogenen Befehle aufzulisten:Use the following command to list the blob-related commands:

azure storage blob

Beispiel für die Verwendung der klassischen Azure-CLI zum Hochladen einer DateiExample of using Azure Classic CLI to upload a file

azure storage blob upload <sourcefilename> <containername> <blobname> --account-name <storageaccountname> --account-key <storageaccountkey>

Beispiel für die Verwendung der klassischen Azure-CLI zum Herunterladen einer DateiExample of using Azure Classic CLI to download a file

azure storage blob download <containername> <blobname> <destinationfilename> --account-name <storageaccountname> --account-key <storageaccountkey>

Beispiel für die Verwendung der klassischen Azure-CLI zum Löschen einer DateiExample of using Azure Classic CLI to delete a file

azure storage blob delete <containername> <blobname> --account-name <storageaccountname> --account-key <storageaccountkey>

Beispiel für die Verwendung der klassischen Azure-CLI zum Auflisten von DateienExample of using Azure Classic CLI to list files

azure storage blob list <containername> <blobname|prefix> --account-name <storageaccountname> --account-key <storageaccountkey>

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: