Verwenden von Azure Storage mit Azure HDInsight-Clustern

Sie können Daten in Azure-Blobspeicher, Azure Data Lake Storage Gen1 oder Azure Data Lake Storage Gen2 speichern. oder einer Kombination dieser Optionen speichern. Diese Speichervarianten ermöglichen das sichere Löschen von HDInsight-Clustern, die für Berechnungen verwendet werden, ohne dass Benutzerdaten verloren gehen.

Apache Hadoop unterstützt eine Variante des Standarddateisystems. Das Standarddateisystem gibt ein Standardschema und eine Standardautorität vor. Es kann auch zur Auflösung relativer Pfade verwendet werden. Während der Erstellung des HDInsight-Clusters können Sie einen Blobcontainer in Azure Storage als Standarddateisystem angeben. Mit HDInsight 3.6 können Sie (mit einigen Ausnahmen) entweder Azure-Blobspeicher oder Azure Data Lake Storage Gen1 bzw. Azure Data Lake Storage Gen2 als Standarddateisystem auswählen. 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.

In diesem Artikel erfahren Sie, wie Azure Storage mit HDInsight-Clustern funktioniert.

Wichtig

Speicherkonten vom Typ BlobStorage können nur als sekundärer Speicher für HDInsight-Cluster verwendet werden.

Art des Speicherkontos Unterstützte Dienste Unterstützte Leistungsstufen Nicht unterstützte Leistungsstufen Unterstützte Zugriffsebenen
StorageV2 (universell v2) Blob Standard Premium Heiß, Kalt, Archiv*
Speicher (general-purpose v1) Blob Standard Premium
BlobStorage Blob Standard Premium Heiß, Kalt, Archiv*

Die Verwendung des Standard-Blobcontainers zum Speichern von Geschäftsdaten wird nicht empfohlen. Stattdessen empfiehlt es sich, den Standard-Blobcontainer nach jeder Verwendung zu löschen, um die Speicherkosten zu verringern. Der Standardcontainer enthält Anwendungs- und Systemprotokolle. Stellen Sie sicher, dass Sie die Protokolle abrufen, bevor Sie den Container löschen.

Das Freigeben eines Blobcontainers als Standarddateisystem für mehrere Cluster wird nicht unterstützt.

Hinweis

Die Archivspeicherebene ist eine Offlineebene, die eine Abrufwartezeit von mehreren Stunden aufweist, und wird für die Verwendung mit HDInsight nicht empfohlen. Weitere Informationen finden Sie unter Zugriffsebene „Archiv“.

Zugreifen auf Dateien von innerhalb des Clusters

Es gibt mehrere Möglichkeiten, wie Sie auf die Dateien in Data Lake Storage über einen HDInsight-Cluster zugreifen können. Das URI-Schema bietet unverschlüsselten Zugriff (mit dem Präfix wasb: ) wie auch TLS-verschlüsselten Zugriff (mit wasbs). Wir empfehlen die Verwendung von wasbs , und zwar auch für den Zugriff auf Daten, die sich in Azure in derselben Region befinden.

  • Verwenden des vollqualifizierten Namens Bei diesem Ansatz geben Sie den vollständigen Pfad zu der Datei an, auf die Sie zugreifen möchten.

    wasb://<containername>@<accountname>.blob.core.windows.net/<file.path>/
    wasbs://<containername>@<accountname>.blob.core.windows.net/<file.path>/
    
  • Verwenden des verkürzten Pfadformats Bei diesem Ansatz ersetzen Sie den Pfad bis zum Clusterstamm durch:

    wasb:///<file.path>/
    wasbs:///<file.path>/
    
  • Verwenden des relativen Pfads Bei diesem Ansatz geben Sie nur den relativen Pfad zu der Datei an, auf die Sie zugreifen möchten.

    /<file.path>/
    

Beispiele für Datenzugriff

Die Beispiele basieren auf einer ssh-Verbindung mit dem Hauptknoten des Clusters. In den Beispielen werden alle drei URI-Schemas verwendet. Ersetzen Sie CONTAINERNAME und STORAGEACCOUNT durch die entsprechenden Werte.

Ein paar HDFS-Befehle

  1. Erstellen von Dateien im lokalen Speicher.

    touch testFile.txt
    
  2. Erstellen von Verzeichnissen im Clusterspeicher.

    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.

    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.

    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.

Erstellen einer Hive-Tabelle

Zu Zwecken der Veranschaulichung werden drei Speicherorte gezeigt. Verwenden Sie für die tatsächliche Ausführung nur einen der LOCATION-Einträge.

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

Zugreifen auf Dateien von außerhalb des Clusters

Microsoft bietet die folgenden Tools für die Arbeit mit Azure Storage:

Tool Linux OS X Windows
Azure portal
Azure-Befehlszeilenschnittstelle
Azure PowerShell
AzCopy

Bestimmen des Speicherpfads aus Ambari

  • Um den vollständigen Pfad zum konfigurierten Standardspeicher zu ermitteln, navigieren Sie zu:

    HDFS>Configs, und geben Sie in das Filtereingabefeld fs.defaultFS ein.

  • Um zu überprüfen, ob der WASB-Speicher als sekundärer Speicher konfiguriert ist, navigieren Sie zu:

    HDFS>Configs, und geben Sie in das Filtereingabefeld blob.core.windows.net ein.

Informationen zum Abrufen des Pfads mit der Ambari-REST-API finden Sie unter Abrufen des Standardspeichers.

Blobcontainer

Um Blobs zu verwenden, erstellen Sie zuerst ein Azure-Speicherkonto. Hierzu legen Sie in diesem Schritt eine Azure-Region fest, in der das Speicherkonto erstellt wird. Cluster und Speicherkonto müssen sich in der gleichen Region befinden. Die SQL Server-Datenbanken für den Hive- und Apache Oozie-Metastore müssen sich in der gleichen Region befinden.

Ein Blob gehört unabhängig davon, wo es sich befindet, stets zu einem Container Ihres Azure-Speicherkontos. Bei diesem Container kann es sich um einen bestehenden Blob handeln, der außerhalb von HDInsight erstellt wurde. Oder es kann ein Container sein, der für einen HDInsight-Cluster erstellt wird.

Der standardmäßige Blobcontainer speichert clusterspezifische Informationen wie etwa Auftragsverlauf und Protokolle. Geben Sie einen Standard-Blob-Container nicht für mehrere HDInsight-Cluster frei. Diese Aktion kann zu einer Beschädigung des Auftragsverlaufs führen. Es wird empfohlen, unterschiedliche Container für die einzelnen Cluster zu verwenden. Legen Sie freigegebene Daten nicht im Standardspeicherkonto, sondern in einem verknüpften Speicherkonto ab, das in der Bereitstellung aller relevanten Cluster angegeben wird. Weitere Informationen zum Konfigurieren verknüpfter Speicherkonten finden Sie unter Erstellen von HDInsight-Clustern. Einen Standardspeichercontainer können Sie jedoch auch wiederverwenden, wenn der ursprüngliche HDInsight-Cluster gelöscht wurde. 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.

Hinweis

Das Feature, das eine sichere Übertragung vorschreibt, erzwingt eine sichere Verbindung für alle Anforderungen, die an Ihr Konto gerichtet werden. Dieses Feature wird erst ab HDInsight-Clusterversion 3.6 unterstützt. Weitere Informationen finden Sie unter Erstellen von Apache Hadoop-Clustern mit Speicherkonten mit sicherer Übertragung in Azure HDInsight.

Verwenden zusätzlicher Speicherkonten

Beim Erstellen eines HDInsight-Clusters geben Sie das Azure Storage-Konto an, dem Sie es zuordnen möchten. Sie können zudem während des Erstellungsprozesses oder nach der Erstellung eines Clusters weitere Speicherkonten aus dem gleichen oder einem anderen Azure-Abonnement hinzufügen. Informationen zum Hinzufügen zusätzlicher Speicherkonten finden Sie unter Erstellen von HDInsight-Clustern.

Warnung

Die Verwendung eines zusätzlichen Speicherkontos an einem anderen Ort als dem HDInsight-Cluster wird nicht unterstützt.

Nächste Schritte

In diesem Artikel wurde beschrieben, wie Sie HDFS-kompatiblen Azure Storage mit HDInsight verwenden. Mit diesem Speicher können Sie anpassbare Datenerfassungslösungen mit langfristiger Archivierung aufbauen und HDInsight verwenden, um die Informationen innerhalb der gespeicherten strukturierten und unstrukturierten Daten zu entsperren.

Weitere Informationen finden Sie unter