Korzystanie z usługi Azure Storage w połączeniu z klastrami usługi Azure HDInsight

Dane można przechowywać w usłudze Azure Blob Storage, Azure Data Lake Storage Gen1 lub Azure Data Lake Storage Gen2. Lub kombinacja tych opcji. Te opcje magazynu umożliwiają bezpieczne usuwanie klastrów usługi HDInsight używanych do obliczeń bez utraty danych użytkownika.

Platforma Apache Hadoop obsługuje pojęcie domyślnego systemu plików. Domyślny system plików wyznacza domyślny schemat i element authority. Może również służyć do rozpoznawania ścieżek względnych. Podczas procesu tworzenia klastra usługi HDInsight można określić kontener obiektów blob w usłudze Azure Storage jako domyślny system plików. Lub w usłudze HDInsight 3.6 możesz wybrać usługę Azure Blob Storage lub Azure Data Lake Storage Gen1/ Azure Data Lake Storage Gen2 jako domyślny system plików z kilkoma wyjątkami. Aby uzyskać pomoc techniczną dotyczącą używania Data Lake Storage Gen1 zarówno jako magazynu domyślnego, jak i połączonego, zobacz Dostępność klastra usługi HDInsight.

W tym artykule omówiono współdziałanie usługi Azure Storage z klastrami usługi HDInsight.

Ważne

Obiekt BlobStorage konta magazynu może być używany tylko jako magazyn pomocniczy dla klastrów usługi HDInsight.

Rodzaj konta magazynu Obsługiwane usługi Obsługiwane warstwy wydajności Nieobsługiwane warstwy wydajności Obsługiwane warstwy dostępu
StorageV2 (ogólnego przeznaczenia wersja 2) Obiekt blob Standardowa (Standard) Premium Gorąca, Chłodna, Archiwum*
Magazyn (ogólnego przeznaczenia w wersji 1) Obiekt blob Standardowa (Standard) Premium Nie dotyczy
BlobStorage Obiekt blob Standardowa (Standard) Premium Gorąca, Chłodna, Archiwum*

Nie zalecamy używania domyślnego kontenera obiektów blob do przechowywania danych biznesowych. Dobrym rozwiązaniem jest usunięcie domyślnego kontenera obiektów blob po każdym użyciu, aby obniżyć koszty magazynowania. Domyślny kontener zawiera dzienniki aplikacji i systemu. Koniecznie pobierz dzienniki przed usunięciem kontenera.

Udostępnianie jednego kontenera obiektów blob jako domyślnego systemu plików dla wielu klastrów nie jest obsługiwane.

Uwaga

Warstwa dostępu Archiwum jest warstwą offline, która ma kilka godzin opóźnienia pobierania i nie jest zalecana do użycia z usługą HDInsight. Aby uzyskać więcej informacji, zobacz Archiwizowanie warstwy dostępu.

Uzyskiwanie dostępu do plików z poziomu klastra

Istnieje kilka sposobów uzyskiwania dostępu do plików w Data Lake Storage z klastra usługi HDInsight. Schemat identyfikatora URI zapewnia niezaszyfrowany dostęp (z prefiksem wasb: prefiks) i szyfrowany dostęp TLS (z wasbs). Zalecamy używanie prefiksu wasbs wszędzie tam, gdzie to możliwe, nawet w przypadku uzyskiwania dostępu do danych, które znajdują się wewnątrz tego samego regionu w systemie Azure.

  • Przy użyciu w pełni kwalifikowanej nazwy. W przypadku tej metody należy podać pełną ścieżkę do pliku, do którego chcesz uzyskać dostęp.

    wasb://<containername>@<accountname>.blob.core.windows.net/<file.path>/
    wasbs://<containername>@<accountname>.blob.core.windows.net/<file.path>/
    
  • Przy użyciu skróconego formatu ścieżki. Dzięki temu podejściu zastąp ścieżkę do katalogu głównego klastra:

    wasb:///<file.path>/
    wasbs:///<file.path>/
    
  • Przy użyciu ścieżki względnej. W przypadku tej metody należy podać tylko względną ścieżkę do pliku, do którego chcesz uzyskać dostęp.

    /<file.path>/
    

Przykłady dostępu do danych

Przykłady są oparte na połączeniu SSH z węzłem głównym klastra. W przykładach są używane wszystkie trzy schematy identyfikatorów URI. Zastąp CONTAINERNAME wartości i STORAGEACCOUNT odpowiednimi wartościami

Kilka poleceń hdfs

  1. Utwórz plik w magazynie lokalnym.

    touch testFile.txt
    
  2. Utwórz katalogi w magazynie klastra.

    hdfs dfs -mkdir wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/sampledata1/
    hdfs dfs -mkdir wasbs:///sampledata2/
    hdfs dfs -mkdir /sampledata3/
    
  3. Kopiowanie danych z magazynu lokalnego do magazynu klastra.

    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. Wyświetl listę zawartości katalogu w magazynie klastra.

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

Uwaga

Podczas pracy z obiektami blob poza usługą HDInsight, większość narzędzi nie rozpoznaje formatu WASB i zamiast tego oczekuje podstawowego formatu ścieżki, takiego jak example/jars/hadoop-mapreduce-examples.jar.

Tworzenie tabeli hive

Trzy lokalizacje plików są wyświetlane w celach ilustracyjnych. W przypadku rzeczywistego LOCATION wykonania użyj tylko jednego z wpisów.

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

Uzyskiwanie dostępu do plików spoza klastra

Firma Microsoft udostępnia następujące narzędzia do pracy z usługą Azure Storage:

Narzędzie Linux OS X Windows
Witryna Azure Portal
Interfejs wiersza polecenia platformy Azure
Azure PowerShell
AzCopy

Identyfikowanie ścieżki magazynu z systemu Ambari

  • Aby zidentyfikować pełną ścieżkę do skonfigurowanego magazynu domyślnego, przejdź do:

    HDFS>Konfiguracje i wprowadź fs.defaultFS w polu wejściowym filtru.

  • Aby sprawdzić, czy magazyn wasb jest skonfigurowany jako magazyn pomocniczy, przejdź do:

    HDFS>Konfiguracje i wprowadź blob.core.windows.net w polu wejściowym filtru.

Aby uzyskać ścieżkę przy użyciu interfejsu API REST systemu Ambari, zobacz Pobieranie domyślnego magazynu.

Kontenery obiektów blob

Aby użyć obiektów blob, należy najpierw utworzyć konto usługi Azure Storage. W ramach tego kroku należy określić region świadczenia usługi Azure, w którym jest tworzone konto magazynu. Klaster i konto magazynu muszą być hostowane w tym samym regionie. Magazyn metadanych Hive SQL Server bazy danych i baza danych magazynu metadanych Apache Oozie SQL Server musi znajdować się w tym samym regionie.

Wszędzie tam, gdzie go umieszczono, każdy utworzony obiekt blob należy do kontenera na koncie usługi Azure Storage. Ten kontener może być istniejącym obiektem blob utworzonym poza usługą HDInsight. Może to być też kontener utworzony dla klastra usługi HDInsight.

Domyślny kontener obiektów blob przechowuje informacje dotyczące klastra, takie jak dzienniki i historia zadań. Nie należy współużytkować domyślnego kontenera obiektów blob dla wielu klastrów usługi HDInsight. Ta akcja może uszkodzić historię zadań. Zaleca się użycie innego kontenera dla każdego klastra. Umieść dane udostępnione na połączonym koncie magazynu określonym dla wszystkich odpowiednich klastrów, a nie domyślnego konta magazynu. Aby uzyskać więcej informacji na temat konfigurowania połączonych kont magazynu, zobacz artykuł Tworzenie klastrów usługi HDInsight. Jednak po usunięciu oryginalnego klastra usługi HDInsight można ponownie użyć domyślnego kontenera magazynu. W przypadku klastrów HBase można faktycznie zachować schemat i dane tabeli HBase, tworząc nowy klaster HBase przy użyciu domyślnego kontenera obiektów blob używanych przez usunięty klaster HBase

Uwaga

Funkcja, która wymaga bezpiecznego transferu, wymusza wszystkie żądania do konta za pośrednictwem bezpiecznego połączenia. Ta funkcja obsługuje tylko klaster usługi HDInsight w wersji 3.6 lub nowszej. Aby uzyskać więcej informacji, zobacz Create Apache Hadoop cluster with secure transfer storage accounts in Azure HDInsight (Tworzenie klastra Apache Hadoop przy użyciu kont magazynu bezpiecznego transferu w usłudze Azure HDInsight).

Używanie dodatkowych kont magazynu

Podczas tworzenia klastra usługi HDInsight należy wskazać konto usługi Azure Storage, które ma zostać skojarzone z tym klastrem. Ponadto możesz dodać dodatkowe konta magazynu z tej samej subskrypcji platformy Azure lub różnych subskrypcji platformy Azure podczas procesu tworzenia lub po utworzeniu klastra. Aby uzyskać instrukcje dotyczące dodawania dodatkowych kont magazynu, zobacz Tworzenie klastrów usługi HDInsight.

Ostrzeżenie

Korzystanie z dodatkowego konta magazynu w innej lokalizacji niż klaster usługi HDInsight nie jest obsługiwane.

Następne kroki

W tym artykule przedstawiono sposób korzystania z magazynu Azure zgodnego z systemem plików HDFS w połączeniu z usługą HDInsight. Ten magazyn umożliwia tworzenie dostosowanych, długoterminowych, archiwalnych rozwiązań do pozyskiwania danych i korzystanie z usługi HDInsight w celu odblokowania informacji wewnątrz przechowywanych danych ustrukturyzowanych i nieustrukturyzowanych.

Aby uzyskać więcej informacji, zobacz: