Použití úložiště Azure s clustery Azure HDInsightUse Azure storage with Azure HDInsight clusters

Pokud chcete analyzovat data v clusteru HDInsight, můžete můžete ukládat buď v služby Azure Storage, Azure Data Lake Storage Gen 1/2. generace úložiště Azure Data Lake, nebo ke kombinaci.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. Tyto možnosti ukládání umožňují bezpečné odstranění clusterů HDInsight, které jsou používány pro výpočty, aniž by se ztratila uživatelská data.These storage options enable you to safely delete HDInsight clusters that are used for computation without losing user data.

Apache Hadoop podporuje hodnoty výchozího systému souborů.Apache Hadoop supports a notion of the default file system. Výchozí systém souborů znamená výchozí schéma a autoritu.The default file system implies a default scheme and authority. Lze ho také použít k vyřešení relativní cesty.It can also be used to resolve relative paths. Během procesu vytváření clusteru HDInsight, můžete zadat kontejner objektů blob ve službě Azure Storage jako výchozí systém souborů nebo u služby HDInsight 3.6, můžete vybrat služby Azure Storage nebo Azure Data Lake Storage Gen 1 / Azure Data Lake Storage Gen 2 jako výchozí soubory systém s několika výjimkami.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. Možnosti použití Data Lake Storage Gen 1 jako výchozí i propojené úložiště, najdete v části dostupnost pro HDInsight cluster.For the supportability of using Data Lake Storage Gen 1 as both the default and linked storage, see Availability for HDInsight cluster.

V tomto článku se dozvíte, jak služba Azure Storage pracuje s clustery HDInsight.In this article, you learn how Azure Storage works with HDInsight clusters. Informace o tom, jak služba Data Lake Storage Gen 1 pracuje s clustery HDInsight, naleznete v tématu použití služby Azure Data Lake Storage s Azure HDInsight clustery.To learn how Data Lake Storage Gen 1 works with HDInsight clusters, see Use Azure Data Lake Storage with Azure HDInsight clusters. Další informace o vytvoření clusteru HDInsight najdete v tématu vytvořit Apache Hadoop clusterů v HDInsight.For more information about creating an HDInsight cluster, see Create Apache Hadoop clusters in HDInsight.

Azure Storage je robustní řešení úložiště pro obecné účely, které se jednoduše integruje se službou HDInsight.Azure storage is a robust, general-purpose storage solution that integrates seamlessly with HDInsight. HDInsight může jako výchozí systém souborů pro cluster používat kontejner objektů blob ve službě Azure Storage.HDInsight can use a blob container in Azure Storage as the default file system for the cluster. Prostřednictvím rozhraní systému souborů Hadoop DFS (HDFS) může celá sada komponent ve službě HDInsight pracovat přímo se strukturovanými nebo nestrukturovanými daty uloženými jako objekty blob.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.

Varování

Druh účtu úložiště BlobStorage jde použít jenom jako sekundární úložiště pro clustery HDInsight.Storage account kind BlobStorage can only be used as secondary storage for HDInsight clusters.

Druh účtu úložištěStorage account kind Podporované službySupported services Úrovně výkonu podporovanéSupported performance tiers Podporované přístupuSupported access tiers
StorageV2 (obecné účely v2)StorageV2 (general-purpose v2) Objekt blobBlob StandardStandard Horká, studená, archivní*Hot, Cool, Archive*
Storage (pro obecné účely v1)Storage (general-purpose v1) Objekt blobBlob StandardStandard neuvedenoN/A
BlobStorageBlobStorage Objekt blobBlob StandardStandard Horká, studená, archivní*Hot, Cool, Archive*

Nedoporučujeme používat výchozí kontejner objektů blob pro ukládání firemních dat.We do not recommend that you use the default blob container for storing business data. 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ě.Deleting the default blob container after each use to reduce storage cost is a good practice. Výchozí kontejner obsahuje aplikaci a systémové protokoly.The default container contains application and system logs. Než odstraníte kontejner, nezapomeňte tyto protokoly načíst.Make sure to retrieve the logs before deleting the container.

Sdílení jednoho kontejneru objektů blob jako výchozího systému souborů pro několik clusterů se nepodporuje.Sharing one blob container as the default file system for multiple clusters is not supported.

Poznámka

Archivní úroveň přístupu je offline vrstvy, který má několik latence načtení hodinu a nedoporučuje se používat pro použití s HDInsight.The Archive access tier is an offline tier that has a several hour retrieval latency and is not recommended for use with HDInsight. Další informace najdete v tématu archivní úroveň přístupu.For more information, see Archive access tier.

Pokud se rozhodnete k zabezpečení vašeho účtu úložiště pomocí virtuální sítí a bran firewall omezení vybrané sítě, je potřeba povolit výjimku Povolit důvěryhodné Microsoft služby... tak, aby HDInsight můžete přístup k vašemu účtu úložiště.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.

Architektura úložiště HDInsightHDInsight storage architecture

Následující diagram představuje abstraktní zobrazení architektury úložiště HDInsight, které používá službu Azure Storage:The following diagram provides an abstract view of the HDInsight storage architecture of using Azure Storage:

Clustery Hadoop používají rozhraní API HDFS pro přístup a ukládání strukturovaných i nestrukturovaných dat do služby Blob Storage.Hadoop clusters use the HDFS API to access and store structured and unstructured data in Blob storage.

Služba HDInsight poskytuje přístup do systému souborů DFS, který je místně připojen k výpočetním uzlům.HDInsight provides access to the distributed file system that is locally attached to the compute nodes. Tento systém souborů je přístupný pomocí plně kvalifikovaného identifikátoru URI, například:This file system can be accessed by using the fully qualified URI, for example:

hdfs://<namenodehost>/<path>

Služba HDInsight navíc umožňuje přístup k datům uloženým ve službě Azure Storage.In addition, HDInsight allows you to access data that is stored in Azure Storage. Syntaxe je následující:The syntax is:

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

Při použití účtu Azure Storage s clustery HDInsight je potřeba zvážit tyto aspekty.Here are some considerations when using Azure Storage account with HDInsight clusters.

  • Kontejnery v účtech úložiště, které jsou připojené ke clusteru: Vzhledem k tomu, že název účtu a klíč jsou přidružené ke clusteru během vytváření, máte plný přístup k objektům BLOB v těchto kontejnerech.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.

  • Veřejné kontejnery nebo veřejné objekty BLOB v účtech úložiště, které nejsou připojené ke clusteru: Máte oprávnění jen pro čtení k objektům BLOB v kontejnerech.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.

Poznámka

Veřejné kontejnery umožňují získat seznam všech objektů blob, které jsou k dispozici v tomto kontejneru a získat metadata kontejneru.Public containers allow you to get a list of all blobs that are available in that container and get container metadata. Veřejné objekty blob umožňují přístup k objektům blob jenom v případě, že znáte přesnou adresu URL.Public blobs allow you to access the blobs only if you know the exact URL. Další informace najdete v tématu Správa přístupu ke kontejnerům a objektům blob.For more information, see Manage access to containers and blobs.

  • Privátní kontejnery v účtech úložiště, které nejsou připojené ke clusteru: Objekty BLOB v kontejnerech nelze získat přístup, dokud nedefinujete účet úložiště při odesílání úlohy WebHCat.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. To se vysvětluje dále v tomhle článku.This is explained later in this article.

Účty úložiště, které jsou definovány v procesu vytváření a jejich klíče jsou uložené v %HADOOP_HOME%/conf/core-site.xml na uzlech clusteru.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. Výchozím chováním služby HDInsight je používání účtů úložiště, které jsou definovány v souboru core-site.xml.The default behavior of HDInsight is to use the storage accounts defined in the core-site.xml file. Je toto nastavení můžete upravit pomocí Apache Ambari.You can modify this setting using Apache Ambari.

Více úloh WebHCat, včetně Apache Hive, MapReduce, streamování Apache Hadoop a Apache Pig, může obsahovat popis účtů úložiště a spojených metadat.Multiple WebHCat jobs, including Apache Hive, MapReduce, Apache Hadoop streaming, and Apache Pig, can carry a description of storage accounts and metadata with them. (To aktuálně funguje pro Pig s účty úložiště, ale ne pro metadata.) Více informací najdete v části Použití clusteru HDInsight s alternativními účty úložiště a metaúložišti.(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.

Objekty blob lze použít pro strukturovaná i nestrukturovaná data.Blobs can be used for structured and unstructured data. Kontejnery objektů blob ukládají data jako páry klíč/hodnota a neexistuje žádná hierarchie adresářů.Blob containers store data as key/value pairs, and there is no directory hierarchy. V názvu klíče se dá použít lomítko (/), aby název klíče připomínal cestu k souboru.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. Klíč k objektu blob může být například input/log1.txt.For example, a blob's key may be input/log1.txt. Žádný skutečný vstupní adresář neexistuje, ale vzhledem k lomítku v názvu klíče tento název připomíná zobrazení cesty k souboru.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.

Výhody služby Azure StorageBenefits of Azure Storage

Předpokládaná náklady není společné umístění výpočetních clusterů a prostředků úložiště je zmírnit tak, jak výpočetní clustery jsou vytvořeny blízko prostředků účtu úložiště uvnitř oblasti Azure, kde vysokorychlostní síť umožňuje efektivní výpočetní uzly pro přístup k datům ve službě Azure storage.The implied performance cost of not colocating 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.

S ukládáním dat ve službě Azure Storage namísto HDFS je spojeno několik výhod:There are several benefits associated with storing the data in Azure storage instead of HDFS:

  • Opakované použití dat a sdílení: Data v HDFS se nachází uvnitř výpočetního clusteru.Data reuse and sharing: The data in HDFS is located inside the compute cluster. Jenom aplikace, které mají přístup k výpočetnímu clusteru, můžou používat data pomocí rozhraní API HDFS.Only the applications that have access to the compute cluster can use the data by using HDFS APIs. Data ve službě Azure storage je přístupná prostřednictvím rozhraní API HDFS nebo prostřednictvím rozhraní API REST služby Blob Storage.The data in Azure storage can be accessed either through the HDFS APIs or through the Blob Storage REST APIs. Proto s větším počtem aplikací (včetně jiných clusterů HDInsight) a nástrojů se dají vytvářet a využívat data.Thus, a larger set of applications (including other HDInsight clusters) and tools can be used to produce and consume the data.

  • Archivace dat: Ukládání dat ve službě Azure storage umožňuje clusterů HDInsight, které jsou používány pro výpočty bezpečně odstranit, aniž by se ztratila uživatelská data.Data archiving: Storing data in Azure storage enables the HDInsight clusters used for computation to be safely deleted without losing user data.

  • Náklady na úložiště dat: Pro dlouhodobé ukládání dat v systému souborů DFS je proto dražší než ukládání dat ve službě Azure storage, protože náklady na výpočetní cluster jsou vyšší než náklady na úložiště Azure.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. Navíc se data nemusí nahrávat znovu pro každou generaci výpočetních clusterů, náklady na nahrávání dat jsou tak nižší.In addition, because the data does not have to be reloaded for every compute cluster generation, you are also saving data loading costs.

  • Elastické horizontální navýšení kapacity: I když HDFS poskytuje systém horizontálním navýšením kapacity souborů, škála se určuje podle počtu uzlů, které vytvoříte pro váš cluster.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. Změna škálování může být složitější než využití elastického škálování, které je automaticky k dispozici ve službě Azure Storage.Changing the scale can become a more complicated process than relying on the elastic scaling capabilities that you get automatically in Azure storage.

  • Geografická replikace: Úložiště Azure může být geograficky replikovaný.Geo-replication: Your Azure storage can be geo-replicated. I když to přináší geografické obnovení a redundanci dat, převzetí služeb při selhání do geograficky replikovaného umístění vážně ovlivňuje výkon a může vést k dalším nákladům.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. Doporučujeme proto geografickou replikaci dobře zvážit a zvolit jen v případě, že hodnota dat je vyšší než náklady na celou operaci.So our recommendation is to choose the geo-replication wisely and only if the value of the data is worth the additional cost.

Některé úlohy a balíčky MapReduce můžou vytvořit mezilehlé výsledky, které ve službě Azure Storage ve skutečnosti uložit nechcete.Certain MapReduce jobs and packages may create intermediate results that you don't really want to store in Azure storage. V takovém případě můžete zvolit k uložení dat do místní HDFS.In that case, you can elect to store the data in the local HDFS. Ve skutečnosti služba HDInsight používá DFS pro některé z těchto mezilehlých výsledků v úlohách Hive a jiných procesech.In fact, HDInsight uses DFS for several of these intermediate results in Hive jobs and other processes.

Poznámka

Většina příkazů HDFS (například ls, copyFromLocal a mkdir) i nadále fungovat podle očekávání.Most HDFS commands (for example, ls, copyFromLocal and mkdir) still work as expected. Jenom příkazy, které jsou specifické pro nativní implementaci HDFS (což se označuje jako DFS), jako je například fschk a dfsadmin, zobrazit různé chování ve službě Azure storage.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.

Adresování souborů ve službě Azure StorageAddress files in Azure storage

Schéma identifikátoru URI pro přístup k souborům ve službě Azure Storage ze služby HDInsight je:The URI scheme for accessing files in Azure storage from HDInsight is:

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

Schéma identifikátoru URI poskytuje nezašifrovaný přístup (s předponou wasb: ) a zašifrovaný přístup SSL (s wasbs).The URI scheme provides unencrypted access (with the wasb: prefix) and SSL encrypted access (with 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.We recommend using wasbs wherever possible, even when accessing data that lives inside the same region in Azure.

<BlobStorageContainerName> Identifikuje název kontejneru objektů blob ve službě Azure storage.The <BlobStorageContainerName> identifies the name of the blob container in Azure storage. <StorageAccountName> Identifikuje název účtu úložiště Azure.The <StorageAccountName> identifies the Azure Storage account name. Vyžaduje se plně kvalifikovaný název domény (FQDN).A fully qualified domain name (FQDN) is required.

Pokud ani <BlobStorageContainerName> ani <StorageAccountName> byl zadán, výchozí systém souborů se používá.If neither <BlobStorageContainerName> nor <StorageAccountName> has been specified, the default file system is used. Pro soubory ve výchozím systému souborů můžete použít relativní cestu nebo absolutní cestu.For the files on the default file system, you can use a relative path or an absolute path. Například soubor hadoop-mapreduce-examples.jar, který se dodává s clustery HDInsight, lze odkazovat pomocí jedné z následujících akcí: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

Poznámka

Název souboru je hadoop-examples.jar v clusterech HDInsight verze 2.1 a 1.6.The file name is hadoop-examples.jar in HDInsight versions 2.1 and 1.6 clusters.

Cesta je název cesty HDFS souboru nebo adresáře.The path is the file or directory HDFS path name. Vzhledem k tomu, že kontejnery ve službě Azure storage jsou párů klíč-hodnota, neexistuje žádný opravdový hierarchický systém souborů.Because containers in Azure storage are key-value stores, there is no true hierarchical file system. Lomítko ( / ) uvnitř klíče objektu blob se považuje za oddělovač adresářů.A slash character ( / ) inside a blob key is interpreted as a directory separator. Například název objektu blob pro hadoop-mapreduce-examples.jar je:For example, the blob name for hadoop-mapreduce-examples.jar is:

example/jars/hadoop-mapreduce-examples.jar

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.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.

Kontejnery objektů BLOBBlob containers

K použití objektů blob je třeba nejprve vytvořit účtu služby Azure Storage.To use blobs, you first create an Azure Storage account. V rámci tohoto procesu zadáte oblast Azure, ve které se účet úložiště vytvoří.As part of this, you specify an Azure region where the storage account is created. Účet úložiště a clusteru musí být uloženy ve stejné oblasti.The cluster and the storage account must be hosted in the same region. Databáze serveru SQL metaúložiště Hive a databáze serveru SQL metaúložiště Apache Oozie musí být také umístěny ve stejné oblasti.The Hive metastore SQL Server database and Apache Oozie metastore SQL Server database must also be located in the same region.

Bez ohledu na svoje umístění patří každý objekt blob, který vytvoříte, do kontejneru v účtu úložiště Azure.Wherever it lives, each blob you create belongs to a container in your Azure Storage account. Tento kontejner může být existující objekt blob, který se vytvořil mimo HDInsight, nebo to může být kontejner, který se vytvořil pro cluster služby HDInsight.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.

Výchozí kontejner objektu blob ukládá konkrétní informace, jako je historie úlohy a protokoly.The default Blob container stores cluster-specific information such as job history and logs. Výchozí kontejner objektu Blob nesdílejte s více clustery služby HDInsight.Don't share a default Blob container with multiple HDInsight clusters. Může dojít k poškození historie úlohy.This might corrupt job history. Doporučujeme použít jiný kontejner pro každý cluster a umístit sdílená data na propojený účet úložiště, zadaný v nasazení všech příslušných clusterů, nikoli na výchozí účet úložiště.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. Další informace o konfiguraci propojených účtů úložiště najdete v tématu clusterů HDInsight vytvořit.For more information on configuring linked storage accounts, see Create HDInsight clusters. Nicméně, po odstranění původního clusteru HDInsight můžete znovu použít výchozí kontejner úložiště.However you can reuse a default storage container after the original HDInsight cluster has been deleted. Pro clustery 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ý je používán odstraněným clusterem HBase.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.

Poznámka

Funkce, která vyžaduje zabezpečený přenos vynucuje všechny požadavky na účet přes zabezpečené připojení.The feature that requires secure transfer enforces all requests to your account through a secure connection. Jenom HDInsight verze 3.6 nebo novější podporuje clusteru tuto funkci.Only HDInsight cluster version 3.6 or newer supports this feature. Další informace najdete v tématu vytvořit Apache Hadoop cluster s bezpečným přenosem účty úložiště v Azure HDInsight.For more information, see Create Apache Hadoop cluster with secure transfer storage accounts in Azure HDInsight.

Interakce s Azure storageInteracting with Azure storage

Společnost Microsoft poskytuje následující nástroje pro práci s Azure Storage:Microsoft provides the following tools to work with Azure Storage:

NástrojTool LinuxLinux OS XOS X WindowsWindows
Azure PortalAzure portal
Azure CLIAzure CLI
Azure PowerShellAzure PowerShell
AzCopyAzCopy

Použití dalších účtů úložištěUse additional storage accounts

Při vytváření clusteru HDInsight zadáváte účet služby Azure Storage, který k němu chcete přidružit.While creating an HDInsight cluster, you specify the Azure Storage account you want to associate with it. Kromě tohoto účtu úložiště můžete během procesu vytváření nebo až po vytvoření clusteru přidat další účty úložiště ze stejného předplatného Azure nebo různých předplatných Azure.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. Pokyny pro přidání dalších účtů úložiště najdete v tématu Vytváření clusterů HDInsight.For instructions about adding additional storage accounts, see Create HDInsight clusters.

Varování

Použití dalšího účtu úložiště v jiném umístění, než je cluster HDInsight, není podporováno.Using an additional storage account in a different location than the HDInsight cluster is not supported.

Další postupNext steps

V tomto článku jste zjistili, jak používat HDFS kompatibilní úložiště Azure se službou HDInsight.In this article, you learned how to use HDFS-compatible Azure storage with HDInsight. To umožňuje vytvářet škálovatelná a dlouhodobá řešení pro získávání archivovaných dat a používat službu HDInsight k odemčení informací uvnitř uložených strukturovaných a nestrukturovaných dat.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.

Další informace naleznete v tématu:For more information, see: