Použití úložiště Azure s clustery Azure HDInsight

Data můžete ukládat ve službě Azure Blob Storage, Azure Data Lake Storage Gen1 nebo Azure Data Lake Storage Gen2. Nebo kombinaci těchto možností. Tyto možnosti úložiště umožňují bezpečně odstranit clustery HDInsight, které se používají pro výpočty, bez ztráty uživatelských dat.

Apache Hadoop podporuje koncept výchozího systému souborů. Výchozí systém souborů znamená výchozí schéma a autoritu. Lze ho také použít k vyřešení relativní cesty. Během procesu vytváření clusteru HDInsight můžete jako výchozí systém souborů zadat kontejner objektů blob ve službě Azure Storage. Nebo s HDInsight 3.6 můžete s několika výjimkami jako výchozí systém souborů vybrat azure Blob Storage nebo Azure Data Lake Storage Gen1/Azure Data Lake Storage Gen2. Informace o podpoře použití Data Lake Storage Gen1 jako výchozího i propojeného úložiště najdete v tématu Dostupnost clusteru HDInsight.

V tomto článku se dozvíte, jak služba Azure Storage pracuje s clustery HDInsight.

Důležité

Typ účtu úložiště BlobStorage se dá použít pouze jako sekundární úložiště pro clustery HDInsight.

Druh účtu úložiště Podporované služby Podporované úrovně výkonu Nepodporovaná úroveň výkonu Podporované úrovně přístupu
StorageV2 (obecné účely v2) Objekt blob Standard Premium Horká, studená, archivní*
Úložiště (obecné účely v1) Objekt blob Standard Premium
Blob Storage Objekt blob Standard Premium Horká, studená, archivní*

Nedoporučujeme používat výchozí kontejner objektů blob k ukládání obchodních dat. Ideální postup je výchozí kontejner objektů blob po každém použití odstranit a snížit tak náklady na úložiště. Výchozí kontejner obsahuje aplikační a systémové protokoly. Než odstraníte kontejner, nezapomeňte tyto protokoly načíst.

Sdílení jednoho kontejneru objektů blob jako výchozího systému souborů pro více clusterů se nepodporuje.

Poznámka

Archivní úroveň přístupu je offline úroveň, která má několikahodinovou latenci načítání a nedoporučuje se používat se službou HDInsight. Další informace najdete v tématu Archivní úroveň přístupu.

Přístup k souborům z clusteru

Existuje několik způsobů, jak získat přístup k souborům v Data Lake Storage z clusteru HDInsight. Schéma identifikátoru URI poskytuje nešifrovaný přístup (s předponou wasb: ) a šifrovaný přístup TLS (s wasbs). Doporučujeme používat wasbs kdykoli je to možné, i v případě přístupu k datům, umístěným uvnitř stejné oblasti v Azure.

  • Pomocí plně kvalifikovaného názvu. S tímto přístupem zadáváte úplnou cestu k souboru, ke kterému chcete získat přístup.

    wasb://<containername>@<accountname>.blob.core.windows.net/<file.path>/
    wasbs://<containername>@<accountname>.blob.core.windows.net/<file.path>/
    
  • Pomocí zkráceného formátu cesty. Při použití tohoto přístupu nahradíte cestu ke kořenovému adresáři clusteru tímto:

    wasb:///<file.path>/
    wasbs:///<file.path>/
    
  • Pomocí relativní cesty. S tímto přístupem zadáváte pouze relativní cestu k souboru, ke kterému chcete získat přístup.

    /<file.path>/
    

Příklady přístupu k datům

Příklady jsou založené na připojení SSH k hlavnímu uzlu clusteru. V příkladech se používají všechna tři schémata identifikátorů URI. Nahraďte CONTAINERNAME a STORAGEACCOUNT příslušnými hodnotami.

Několik příkazů hdfs

  1. Vytvořte soubor v místním úložišti.

    touch testFile.txt
    
  2. Vytvořte adresáře v úložišti clusteru.

    hdfs dfs -mkdir wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/sampledata1/
    hdfs dfs -mkdir wasbs:///sampledata2/
    hdfs dfs -mkdir /sampledata3/
    
  3. Kopírování dat z místního úložiště do úložiště clusteru

    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. Vypíše obsah adresáře v úložišti clusteru.

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

Poznámka

Při práci s objekty blob mimo HDInsight většina nástrojů nerozpozná formát WASB a místo toho očekávají základní formát cesty, jako je například example/jars/hadoop-mapreduce-examples.jar.

Vytvoření tabulky Hive

Pro ilustraci jsou zobrazena tři umístění souborů. Pro skutečné spuštění použijte pouze jednu z LOCATION položek.

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

Přístup k souborům z vnějšího clusteru

Microsoft poskytuje následující nástroje pro práci se službou Azure Storage:

Nástroj Linux OS X Windows
Azure Portal
Azure CLI
Azure PowerShell
AzCopy

Identifikace cesty k úložišti z Ambari

  • Pokud chcete zjistit úplnou cestu k nakonfigurované výchozí úložišti, přejděte na:

    HDFS>Konfigurace a zadejte fs.defaultFS do vstupního pole filtru.

  • Pokud chcete zkontrolovat, jestli je úložiště Wasb nakonfigurované jako sekundární úložiště, přejděte na:

    HDFS>Konfigurace a zadejte blob.core.windows.net do vstupního pole filtru.

Pokud chcete získat cestu pomocí rozhraní Ambari REST API, přečtěte si téma Získání výchozího úložiště.

Kontejnery objektů blob

K použití objektů blob je třeba nejprve vytvořit Účet služby Azure Storage. V rámci tohoto kroku zadáte oblast Azure, ve které se účet úložiště vytvoří. Účet úložiště a clusteru musí být uloženy ve stejné oblasti. Databáze metastoru Hive SQL Server a databáze metastoru Apache Oozie SQL Server se musí nacházet ve stejné oblasti.

Bez ohledu na svoje umístění patří každý objekt blob, který vytvoříte, do kontejneru v účtu úložiště Azure. Tento kontejner může být existující objekt blob vytvořený mimo HDInsight. Nebo se může jednat o kontejner vytvořený pro cluster HDInsight.

Výchozí kontejner objektu blob ukládá konkrétní informace, jako je historie úlohy a protokoly. Výchozí kontejner objektu Blob nesdílejte s více clustery služby HDInsight. Tato akce může poškodit historii úloh. Pro každý cluster se doporučuje použít jiný kontejner. Umístěte sdílená data do propojeného účtu úložiště určeného pro všechny relevantní clustery místo do výchozího účtu úložiště. Další informace o konfiguraci propojených účtů úložiště najdete v tématu Tvorba clusterů HDInsight. Nicméně, po odstranění původního clusteru HDInsight můžete znovu použít výchozí kontejner úložiště. V případě clusterů HBase můžete zachovat schéma a data tabulky HBase vytvořením nového clusteru HBase pomocí výchozího kontejneru objektů blob, který používá odstraněný cluster HBase.

Poznámka

Funkce, která vyžaduje zabezpečený přenos, vynucuje všechny požadavky na váš účet prostřednictvím zabezpečeného připojení. Tuto funkci podporuje pouze cluster HDInsight verze 3.6 nebo novější. Další informace najdete v tématu Vytvoření clusteru Apache Hadoop se zabezpečeným přenosem účtů úložiště ve službě Azure HDInsight.

Použití dalších účtů úložiště

Při vytváření clusteru HDInsight zadáváte účet služby Azure Storage, který k němu chcete přidružit. Během procesu vytváření nebo po vytvoření clusteru můžete také přidat další účty úložiště ze stejného předplatného Azure nebo různých předplatných Azure. Pokyny pro přidání dalších účtů úložiště najdete v tématu Tvorba clusterů HDInsight.

Upozornění

Použití dalšího účtu úložiště v jiném umístění, než je cluster HDInsight, není podporováno.

Další kroky

V tomto článku jste zjistili, jak používat HDFS kompatibilní úložiště Azure se službou HDInsight. Toto úložiště umožňuje vytvářet přizpůsobitelná, dlouhodobá řešení pro získávání archivovaných dat a používat HDInsight k odemknutí informací uvnitř uložených strukturovaných a nestrukturovaných dat.

Další informace naleznete v tématu: