Verwenden von Azure Data Lake Storage Gen2 mit Azure HDInsight-Clustern

Azure Data Lake Storage Gen2 ist ein Cloudspeicherdienst für Big-Data-Analysen, der auf Azure Blob Storage basiert. Data Lake Storage Gen2 vereint die Funktionen von Azure Blob Storage und Azure Data Lake Storage Gen1. Der daraus resultierende Dienst bietet Azure Data Lake Storage Gen1-Features wie beispielsweise Dateisystemsemantik, Sicherheit auf Verzeichnis- und Dateiebene sowie Anpassbarkeit. Sie werden ergänzt durch die geringen Kosten, den mehrstufigen Speicher, die Hochverfügbarkeit und die Notfallwiederherstellung von Azure Blob Storage.

Einen vollständigen Vergleich der Optionen für die Clustererstellung mit Azure Data Lake Storage Gen2 finden Sie unter Vergleich der Speicheroptionen für die Verwendung mit Azure HDInsight-Clustern.

Warnung

Die Abrechnung für die HDInsight-Cluster erfolgt anteilsmäßig auf Minutenbasis und ist unabhängig von der Verwendung. Daher sollten Sie Ihren Cluster nach der Verwendung unbedingt wieder löschen. Sehen Sie sich die Informationen zum Löschen eines HDInsight-Clusters an.

Verfügbarkeit von Data Lake Storage Gen2

Data Lake Storage Gen2 ist als Speicheroption für fast alle Typen von Azure HDInsight-Clustern sowohl als Standard- als auch zusätzliches Speicherkonto verfügbar. HBase kann jedoch nur ein Konto mit Data Lake Storage Gen2 verwenden.

Hinweis

Nachdem Sie Data Lake Storage Gen2 als primären Speichertyp ausgewählt haben, können Sie keine Data Lake Storage Gen1-Instanz als zusätzlichen Speicher auswählen.

Erstellen von HDInsight-Clustern mithilfe von Data Lake Storage Gen2

Unter den folgenden Links finden Sie eine ausführliche Anleitung, wie Sie HDInsight-Cluster mit Zugriff auf Data Lake Storage Gen2 erstellen.

Zugriffssteuerung für Data Lake Storage Gen2 in HDInsight

Welche Arten von Berechtigungen unterstützt Data Lake Storage Gen2?

Data Lake Storage Gen2 verwendet ein Zugriffssteuerungsmodell, das sowohl die rollenbasierte Zugriffssteuerung (Role Based Access Control, RBAC) in Azure als auch POSIX-ähnliche Zugriffssteuerungslisten (Access Control Lists, ACLs) unterstützt. Data Lake Storage Gen1 unterstützt Zugriffssteuerungslisten nur zum Steuern des Zugriffs auf Daten.

Für Azure RBAC werden Rollenzuweisungen verwendet, um Benutzern, Gruppen und Dienstprinzipalen Berechtigungen für Azure-Ressourcen effektiv zuzuweisen. In der Regel sind diese Azure-Ressourcen auf Ressourcen auf oberster Ebene beschränkt (z. B. Azure Blob Storage-Konten). Für Azure Blob Storage und damit auch Data Lake Storage Gen2 wurde dieser Mechanismus auf die Dateisystemressource ausgeweitet.

Weitere Informationen zu Dateiberechtigungen mit Azure RBAC finden Sie unter Rollenbasierte Zugriffssteuerung in Azure (Azure RBAC).

Weitere Informationen zu Dateiberechtigungen mit ACLs finden Sie im Abschnitt „Zugriffssteuerungslisten für Dateien und Verzeichnisse“ unter Zugriffssteuerung in Azure Data Lake Storage Gen2.

Wie steuere ich in Data Lake Storage Gen2 den Zugriff auf meine Daten?

In Data Lake Storage Gen2 steuern verwaltete Identitäten den Zugriff auf Dateien durch Ihren HDInsight-Cluster. Eine verwaltete Identität ist eine in Microsoft Entra registrierte Identität, deren Anmeldeinformationen von Azure verwaltet werden. Bei Verwendung von verwalteten Identitäten müssen Sie in Microsoft Entra ID keine Dienstprinzipale registrieren. Sie müssen auch keine Anmeldeinformationen, z. B. Zertifikate, verwalten.

Es gibt zwei Arten verwalteter Identitäten für Azure-Dienste: durch das System zugewiesene und durch den Benutzer zugewiesene Identitäten. HDInsight verwendet durch den Benutzer zugewiesene verwaltete Identitäten, um auf Data Lake Storage Gen2 zuzugreifen. Benutzerseitig zugewiesene verwaltete Identitäten werden als eigenständige Azure-Ressourcen erstellt. Azure erstellt eine Identität in dem Microsoft Entra-Mandanten, der vom verwendeten Abonnement als vertrauenswürdig eingestuft wird. Nachdem die Identität erstellt wurde, kann sie einer oder mehreren Azure-Dienstinstanzen zugewiesen werden.

Der Lebenszyklus einer vom Benutzer zugewiesenen Identität wird getrennt vom Lebenszyklus der Azure-Dienstinstanzen verwaltet, denen sie zugewiesen ist. Weitere Informationen zu verwalteten Identitäten finden Sie unter Was sind verwaltete Identitäten für Azure-Ressourcen?.

Wie richte ich Berechtigungen für Microsoft Entra-Benutzer zum Abfragen von Daten in Data Lake Storage Gen2 mit Hive oder anderen Diensten ein?

Verwenden Sie Microsoft Entra-Sicherheitsgruppen als zugewiesenen Prinzipal in ACLs, um Benutzern Berechtigungen zum Abfragen von Daten zu erteilen. Weisen Sie einzelnen Benutzern oder Dienstprinzipalen nicht direkt Dateizugriffsberechtigungen zu. Wenn Sie Microsoft Entra-Sicherheitsgruppen zum Steuern des Flusses von Berechtigungen verwenden, können Sie Benutzer oder Dienstprinzipale hinzufügen und entfernen, ohne erneut ACLs auf eine gesamte Verzeichnisstruktur anzuwenden. Sie müssen die Benutzer einfach der entsprechenden Microsoft Entra-Sicherheitsgruppe hinzufügen oder sie aus ihr entfernen. ACLs werden nicht vererbt, und die erneute Anwendung von ACLs erfordert daher eine Aktualisierung der ACL für jede Datei und jedes Unterverzeichnis.

Zugreifen auf Dateien aus dem Cluster

Es gibt mehrere Möglichkeiten, wie Sie auf die Dateien in Data Lake Storage Gen2 über einen HDInsight-Cluster zugreifen können.

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

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

    abfs:///<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 abfs://CONTAINERNAME@STORAGEACCOUNT.dfs.core.windows.net/sampledata1/
    hdfs dfs -mkdir abfs:///sampledata2/
    hdfs dfs -mkdir /sampledata3/
    
  3. Kopieren von Daten aus dem lokalen Speicher in den Clusterspeicher.

    hdfs dfs -copyFromLocal testFile.txt  abfs://CONTAINERNAME@STORAGEACCOUNT.dfs.core.windows.net/sampledata1/
    hdfs dfs -copyFromLocal testFile.txt  abfs:///sampledata2/
    hdfs dfs -copyFromLocal testFile.txt  /sampledata3/
    
  4. Auflisten von Verzeichnisinhalten im Clusterspeicher.

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

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 'abfs://CONTAINERNAME@STORAGEACCOUNT.dfs.core.windows.net/example/data/';
LOCATION 'abfs:///example/data/';
LOCATION '/example/data/';

Nächste Schritte