Använda Azure-lagring med Azure HDInsight-klusterUse Azure storage with Azure HDInsight clusters

För att analysera data i HDInsight-klustret kan du lagra data antingen i Azure Storage, Azure Data Lake Storage gen 1/Azure Data Lake Storage gen 2eller en kombination.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. Med dessa lagrings alternativ kan du på ett säkert sätt ta bort HDInsight-kluster som används för beräkning utan att förlora användar data.These storage options enable you to safely delete HDInsight clusters that are used for computation without losing user data.

Apache Hadoop stöder en begreppet standard fil system.Apache Hadoop supports a notion of the default file system. Standardfilsystemet kräver att ett standardschema och en utfärdare används.The default file system implies a default scheme and authority. Det kan också användas för att matcha relativa sökvägar.It can also be used to resolve relative paths. Under skapande processen av HDInsight-kluster kan du ange en BLOB-behållare i Azure Storage som standard fil system, eller med HDInsight 3,6 kan du välja antingen Azure Storage eller Azure Data Lake Storage gen 1/Azure Data Lake Storage gen 2 som standardfiler system med några få undantag.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. För att kunna använda Data Lake Storage gen 1 som både standard-och länkad lagring, se tillgänglighet för HDInsight-kluster.For the supportability of using Data Lake Storage Gen 1 as both the default and linked storage, see Availability for HDInsight cluster.

I den här artikeln får du lära dig hur Azure Storage fungerar med HDInsight-kluster.In this article, you learn how Azure Storage works with HDInsight clusters. Information om hur Data Lake Storage gen 1 fungerar med HDInsight-kluster finns i använda Azure Data Lake Storage med Azure HDInsight-kluster.To learn how Data Lake Storage Gen 1 works with HDInsight clusters, see Use Azure Data Lake Storage with Azure HDInsight clusters. Mer information om hur du skapar ett HDInsight-kluster finns i skapa Apache Hadoop kluster i HDInsight.For more information about creating an HDInsight cluster, see Create Apache Hadoop clusters in HDInsight.

Azure Storage är en robust lagringslösning för allmänna ändamål som smidigt kan integreras med HDInsight.Azure storage is a robust, general-purpose storage solution that integrates seamlessly with HDInsight. HDInsight kan använda en blobcontainer i Azure Storage som standardfilsystem för klustret.HDInsight can use a blob container in Azure Storage as the default file system for the cluster. Genom ett gränssnitt för Hadoop-distribuerat filsystem (HDFS) kan alla komponenter i HDInsight tillämpas direkt på strukturerade eller ostrukturerade data som har lagrats som blobar.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.

Viktigt

Lagrings konto typen BlobStorage kan bara användas som sekundär lagring för HDInsight-kluster.Storage account kind BlobStorage can only be used as secondary storage for HDInsight clusters.

Typ av lagringskontoStorage account kind Tjänster som stödsSupported services Prestanda nivåer som stödsSupported performance tiers Åtkomst nivåer som stödsSupported access tiers
StorageV2 (generell användning v2)StorageV2 (general-purpose v2) BlobBlob StandardStandard Frekvent, låg frekvent, Arkiv*Hot, Cool, Archive*
Lagring (generell användning v1)Storage (general-purpose v1) BlobBlob StandardStandard Gäller inteN/A
BlobStorageBlobStorage BlobBlob StandardStandard Frekvent, låg frekvent, Arkiv*Hot, Cool, Archive*

Vi rekommenderar inte att du använder standard-BLOB-behållaren för lagring av affärs data.We don't recommend that you use the default blob container for storing business data. Ta bort standardcontainern efter varje användning för att minska lagringskostnaden.Deleting the default blob container after each use to reduce storage cost is a good practice. Standard behållaren innehåller program-och system loggar.The default container contains application and system logs. Se till att hämta loggarna innan du tar bort containern.Make sure to retrieve the logs before deleting the container.

Delning av en BLOB-behållare som standard fil system för flera kluster stöds inte.Sharing one blob container as the default file system for multiple clusters isn't supported.

Anteckning

Arkiv åtkomst nivån är en offline-nivå som har en svars tid på flera timmar och rekommenderas inte för användning med HDInsight.The Archive access tier is an offline tier that has a several hour retrieval latency and isn't recommended for use with HDInsight. Mer information finns i Arkiv åtkomst nivå.For more information, see Archive access tier.

Om du väljer att skydda ditt lagrings konto med brand väggar och begränsningar för virtuella nätverkvalda nätverkmåste du aktivera undantaget Tillåt betrodda Microsoft-tjänster... så att HDInsight kan komma åt din lagring redovisning.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.

Lagringsarkitekturen i HDInsightHDInsight storage architecture

Följande diagram visar en abstrakt vy av lagringsarkitekturen i HDInsight med Azure Storage:The following diagram provides an abstract view of the HDInsight storage architecture of using Azure Storage:

Hadoop-kluster använder HDFS API för att komma åt och lagra data i Blob StorageHadoop clusters use HDFS API to access and store data in Blob storage

HDInsight ger tillgång till det distribuerade filsystemet som är lokalt anslutet till beräkningsnoderna.HDInsight provides access to the distributed file system that is locally attached to the compute nodes. Detta filsystem kan nås med hjälp av den fullständigt kvalificerade URI-strängen, till exempel:This file system can be accessed by using the fully qualified URI, for example:

hdfs://<namenodehost>/<path>

Dessutom ger HDInsight möjlighet att komma åt data som är lagrade i Azure Storage.In addition, HDInsight allows you to access data that is stored in Azure Storage. Syntax:The syntax is:

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

Här är några saker att tänka på när du använder Azure Storage-konton med HDInsight-kluster.Here are some considerations when using Azure Storage account with HDInsight clusters.

  • Behållare i de lagrings konton som är anslutna till ett kluster: Eftersom konto namnet och nyckeln är associerade med klustret när de skapas har du fullständig åtkomst till Blobbarna i dessa behållare.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.

  • Offentliga behållare eller offentliga blobbar i lagrings konton som inte är anslutna till ett kluster: Du har skrivskyddad behörighet till Blobbarna i behållarna.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.

Anteckning

Offentliga containrar låter dig hämta en lista över alla blobar som är tillgängliga i containern samt hämta metadata för containern.Public containers allow you to get a list of all blobs that are available in that container and get container metadata. Du kan endast komma åt offentliga blobar om du känner till den exakta webbadressen.Public blobs allow you to access the blobs only if you know the exact URL. Mer information finns i Hantera åtkomst till behållare och blobbar.For more information, see Manage access to containers and blobs.

  • Privata behållare i lagrings konton som inte är anslutna till ett kluster: Du har inte åtkomst till Blobbarna i behållarna om du inte definierar lagrings kontot när du skickar WebHCat-jobb.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. Detta beskrivs senare i artikeln.This is explained later in this article.

De lagrings konton som definieras i skapande processen och deras nycklar lagras %HADOOP_HOME%/conf/core-site.xml på klusternoderna.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. Standardbeteendet för HDInsight är att använda de lagringskonton som definieras i filen core-site.xml.The default behavior of HDInsight is to use the storage accounts defined in the core-site.xml file. Du kan ändra den här inställningen med Apache Ambari.You can modify this setting using Apache Ambari.

Flera WebHCat-jobb, inklusive Apache Hive, MapReduce, Apache Hadoop streaming och Apache gris, kan innehålla en beskrivning av lagrings konton och metadata för dem.Multiple WebHCat jobs, including Apache Hive, MapReduce, Apache Hadoop streaming, and Apache Pig, can carry a description of storage accounts and metadata with them. (För närvarande fungerar för Pig med lagringskonton, men inte för metadata.) Mer information finns i Använda ett HDInsight-kluster med alternativa lagringskonton och metastores.(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.

Blobar kan användas för strukturerade och ostrukturerade data.Blobs can be used for structured and unstructured data. BLOB-behållare lagrar data som nyckel/värde-par, och det finns ingen katalogpartition.Blob containers store data as key/value pairs, and there's no directory hierarchy. Däremot kan snedstreck (/) användas i nyckelnamnet så att det visas som om det vore en fil som lagrats i en katalogstruktur.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. Nyckeln för en blob kan till exempel vara input/log1.txt.For example, a blob's key may be input/log1.txt. Det finns ingen faktisk katalog för indata, men eftersom det finns ett snedstreck i nyckelnamnet ser namnet ut som en filsökväg.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.

Fördelar med Azure StorageBenefits of Azure Storage

Den underförstådda prestanda kostnaden för att inte placera beräknings kluster och lagrings resurser begränsas av hur beräknings klustren skapas nära lagrings konto resurserna i Azure-regionen, där det snabba nätverket gör det effektivt för Compute-noder för att få åtkomst till data i 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.

Det finns flera fördelar med att lagra data i Azure Storage i stället för i HDFS:There are several benefits associated with storing the data in Azure storage instead of HDFS:

  • Åter användning och delning av data: Data i HDFS finns i beräknings klustret.Data reuse and sharing: The data in HDFS is located inside the compute cluster. Endast de program som har åtkomst till beräkningsklustren kan använda dessa data med hjälp av HDFS-API:er.Only the applications that have access to the compute cluster can use the data by using HDFS APIs. Data i Azure Storage kan nås via HDFS-API: erna eller via Blob Storage REST-API: er.The data in Azure storage can be accessed either through the HDFS APIs or through the Blob Storage REST APIs. Därmed kan en större grupp program (inklusive andra HDInsight-kluster) och verktyg användas för att skapa och använda data.Thus, a larger set of applications (including other HDInsight clusters) and tools can be used to produce and consume the data.

  • Data arkivering: Genom att lagra data i Azure Storage kan HDInsight-kluster som används för beräkning vara säkert borttagna utan att användar data går förlorade.Data archiving: Storing data in Azure storage enables the HDInsight clusters used for computation to be safely deleted without losing user data.

  • Kostnad för data lagring: Att lagra data i DFS för lång sikt är dyrare än att lagra data i Azure Storage eftersom kostnaden för ett beräknings kluster är högre än kostnaden för Azure Storage.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. Eftersom data inte behöver läsas in på nytt för varje beräknings kluster skapas dessutom även kostnader för inläsning av data.In addition, because the data doesn't have to be reloaded for every compute cluster generation, you're also saving data loading costs.

  • Elastisk skalbarhet: Även om HDFS ger dig ett skalbart fil system, bestäms skalan av antalet noder som du skapar för klustret.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. Att ändra skala med HDFS kan vara en mer komplicerad process än att använda de elastiska skalningsfunktionerna som du automatiskt har tillgång till i 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.

  • Geo-replikering: Azure-lagringen kan vara geo-replikerad.Geo-replication: Your Azure storage can be geo-replicated. Även om detta ger dig geografisk återställning och dataredundans, innebär en växling till den geo-replikerade platsen en avsevärd försämring av prestandan och kan medföra ytterligare kostnader.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. Vår rekommendation är därför att tänka efter när du väljer geo-replikering och bara göra det om värdet i informationen motiverar den extra kostnaden.So our recommendation is to choose the geo-replication wisely and only if the value of the data is worth the additional cost.

Vissa MapReduce-jobb och -paket kan skapa mellanresultat som du inte egentligen vill lagra i Azure Storage.Certain MapReduce jobs and packages may create intermediate results that you don't really want to store in Azure storage. I så fall kan du välja att lagra data i ditt lokala HDFS.In that case, you can elect to store the data in the local HDFS. Faktum är att HDInsight använder DFS för flera av dessa mellanresultat i Hive-jobb och andra processer.In fact, HDInsight uses DFS for several of these intermediate results in Hive jobs and other processes.

Anteckning

De flesta HDFS-kommandon (till lsexempel copyFromLocal , mkdiroch) fungerar fortfarande som förväntat.Most HDFS commands (for example, ls, copyFromLocal and mkdir) still work as expected. Endast de kommandon som är specifika för den inbyggda HDFS-implementeringen (som kallas DFS), till exempel fschk och dfsadmin, visar olika beteenden i 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.

Adressera filer i Azure StorageAddress files in Azure storage

Följande URI-schema används för att komma åt filer i Azure Storage från HDInsight:The URI scheme for accessing files in Azure storage from HDInsight is:

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

URI-schemat ger okrypterad åtkomst (med prefixet wasb: ) och SSL-krypterad åtkomst (med wasbs).The URI scheme provides unencrypted access (with the wasb: prefix) and SSL encrypted access (with wasbs). Vi rekommenderar att du använder wasbs när det är möjligt, även för åtkomst till data som finns i samma region i Azure.We recommend using wasbs wherever possible, even when accessing data that lives inside the same region in Azure.

<BlobStorageContainerName> Identifierar namnet på BLOB-behållaren i Azure Storage.The <BlobStorageContainerName> identifies the name of the blob container in Azure storage. <StorageAccountName> Identifierar Azure Storage kontots namn.The <StorageAccountName> identifies the Azure Storage account name. Ett fullständigt kvalificerat domännamn (FQDN) krävs.A fully qualified domain name (FQDN) is required.

Om varken <BlobStorageContainerName> eller <StorageAccountName> har angetts används standard fil systemet.If neither <BlobStorageContainerName> nor <StorageAccountName> has been specified, the default file system is used. För filer i filsystemet kan du använda en relativ sökväg eller en absolut sökväg.For the files on the default file system, you can use a relative path or an absolute path. Till exempel kan du referera till den hadoop-mapreduce-examples.jar-fil som medföljer HDInsight-kluster på något av följande sätt:For example, the hadoop-mapreduce-examples.jar file that comes with HDInsight clusters can be referred to by using one of the following:

wasbs://mycontainer@myaccount.blob.core.windows.net/example/jars/hadoop-mapreduce-examples.jar
wasbs:///example/jars/hadoop-mapreduce-examples.jar
/example/jars/hadoop-mapreduce-examples.jar

Anteckning

Fil namnet är hadoop-examples.jar i HDInsight-versionerna 2,1 och 1,6-kluster.The file name is hadoop-examples.jar in HDInsight versions 2.1 and 1.6 clusters.

Sökvägen är Sök vägs namnet för filen eller katalogen HDFS.The path is the file or directory HDFS path name. Eftersom behållare i Azure Storage är nyckel värdes lager finns det inget faktiskt hierarkiskt fil system.Because containers in Azure storage are key-value stores, there is no true hierarchical file system. Ett snedstreck (/) i en blob-nyckel tolkas som en katalogavgränsare.A slash character ( / ) inside a blob key is interpreted as a directory separator. Blob-namnet för hadoop-mapreduce-examples.jar är till exempel:For example, the blob name for hadoop-mapreduce-examples.jar is:

example/jars/hadoop-mapreduce-examples.jar

Anteckning

När du arbetar med blobar utanför HDInsight kan de flesta verktyg inte identifiera WASB-formatet utan förväntar sig i stället ett grundläggande sökvägsformat som 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.

Blob-containrarBlob containers

Om du vill använda blobbar skapar du först ett Azure Storage-konto.To use blobs, you first create an Azure Storage account. Som en del av detta anger du en Azure-region där lagringskontot ska skapas.As part of this, you specify an Azure region where the storage account is created. Klustret och lagringskontot måste finnas i samma region.The cluster and the storage account must be hosted in the same region. Hive-metaarkiv SQL Server Database och Apache Oozie metaarkiv SQL Server Database måste också finnas i samma region.The Hive metastore SQL Server database and Apache Oozie metastore SQL Server database must also be located in the same region.

Oavsett var den finns tillhör varje blob som du skapar en container på ditt Azure Storage-konto.Wherever it lives, each blob you create belongs to a container in your Azure Storage account. Den här containern kan vara en befintlig blob som skapats utanför HDInsight eller en container som skapats för ett HDInsight-kluster.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.

Standardcontainern lagrar klusterspecifik information, till exempel jobbhistorik och loggar.The default Blob container stores cluster-specific information such as job history and logs. Låt inte flera HDInsight-kluster dela en standardblob-container.Don't share a default Blob container with multiple HDInsight clusters. Detta kan skada jobbets historik.This might corrupt job history. Vi rekommenderar att du använder en annan behållare för varje kluster och lagrar delade data på ett länkat lagrings konto som anges vid distribution av alla relevanta kluster i stället för standard lagrings kontot.It's 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. Mer information om hur du konfigurerar länkade lagrings konton finns i skapa HDInsight-kluster.For more information on configuring linked storage accounts, see Create HDInsight clusters. Du kan emellertid återanvända en standardcontainer för lagring när det ursprungliga HDInsight-klustret har tagits bort.However you can reuse a default storage container after the original HDInsight cluster has been deleted. För HBase-kluster kan du faktiskt behålla HBase-tabellens schema och data genom att skapa ett nytt HBase-kluster med hjälp av standard-BLOB-behållaren som används av ett HBase-kluster som har tagits bort.For HBase clusters, you can actually keep 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.

Anteckning

Den funktion som kräver säker överföring tillämpar alla förfrågningar till ditt konto via en säker anslutning.The feature that requires secure transfer enforces all requests to your account through a secure connection. Endast HDInsight-klustret version 3.6 eller senare har stöd för den här funktionen.Only HDInsight cluster version 3.6 or newer supports this feature. Mer information finns i skapa Apache Hadoop-kluster med lagringskonton för säker överföring i Azure HDInsight.For more information, see Create Apache Hadoop cluster with secure transfer storage accounts in Azure HDInsight.

Interagera med Azure StorageInteracting with Azure storage

Microsoft tillhandahåller följande verktyg för att arbeta med Azure Storage:Microsoft provides the following tools to work with Azure Storage:

VerktygTool LinuxLinux OS XOS X WindowsWindows
Azure PortalAzure portal
Azure CLIAzure CLI
Azure PowerShellAzure PowerShell
AzCopyAzCopy

Använda ytterligare lagringskontonUse additional storage accounts

När du skapar ett HDInsight-kluster kan du ange ett Azure Storage-konto som du vill koppla det till.While creating an HDInsight cluster, you specify the Azure Storage account you want to associate with it. Förutom det här lagringskontot kan du lägga till ytterligare lagringskonton från samma Azure-prenumeration eller andra Azure-prenumerationer under skapandeprocessen eller efter att ett kluster har skapats.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. Mer information om hur du lägger till ytterligare lagringskonton finns i Skapa HDInsight-kluster.For instructions about adding additional storage accounts, see Create HDInsight clusters.

Varning

Du kan inte använda ett annat lagringskonto på en annan plats än HDInsight-klustret.Using an additional storage account in a different location than the HDInsight cluster is not supported.

Nästa stegNext steps

I den här artikeln fick du lära dig hur du använder det HDFS-kompatibla Azure Storage med HDInsight.In this article, you learned how to use HDFS-compatible Azure storage with HDInsight. Du kan skapa skalbara, långsiktiga lösningar för arkivering av insamlade data samt HDInsight för att få tillgång till informationen i lagrade strukturerade och ostrukturerade data.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.

Mer information finns i:For more information, see: