Usare una risorsa di archiviazione di Azure con cluster Azure HDInsightUse Azure storage with Azure HDInsight clusters

Per analizzare i dati in un cluster HDInsight è possibile archiviarli in Archiviazione di Azure, Azure Data Lake Store o in entrambe le soluzioni.To analyze data in HDInsight cluster, you can store the data either in Azure Storage, Azure Data Lake Store, or both. Entrambe le opzioni di archiviazione consentono l'eliminazione sicura dei cluster HDInsight usati per i calcoli, senza perdita di dati utente.Both storage options enable you to safely delete HDInsight clusters that are used for computation without losing user data.

Hadoop supporta una nozione del file system predefinito.Hadoop supports a notion of the default file system. Il file system predefinito implica uno schema e un'autorità predefiniti eThe default file system implies a default scheme and authority. può essere usato anche per risolvere percorsi relativi.It can also be used to resolve relative paths. Durante il processo di creazione del cluster HDInsight è possibile specificare un contenitore BLOB in Archiviazione di Azure come file system predefinito. In alternativa, con HDInsight 3.5 è possibile selezionare Archiviazione di Azure o Azure Data Lake Store come file system predefinito, con alcune eccezioni.During the HDInsight cluster creation process, you can specify a blob container in Azure Storage as the default file system, or with HDInsight 3.5, you can select either Azure Storage or Azure Data Lake Store as the default files system with a few exceptions. Per il supporto dell'uso di Data Lake Store come risorsa di archiviazione sia predefinita che collegata, vedere Disponibilità per il cluster HDInsight.For the supportability of using Data Lake Store as both the default and linked storage, see Availabilities for HDInsight cluster.

Questo articolo illustra come usare Archiviazione di Azure con i cluster HDInsight.In this article, you learn how Azure Storage works with HDInsight clusters. Per informazioni sull'uso di Data Lake Store con i cluster HDInsight, vedere Usare Azure Data Lake Store con cluster Azure HDInsight.To learn how Data Lake Store works with HDInsight clusters, see Use Azure Data Lake Store with Azure HDInsight clusters. Per altre informazioni sulla creazione di un cluster HDInsight, vedere Creare cluster Hadoop in HDInsight.For more information about creating an HDInsight cluster, see Create Hadoop clusters in HDInsight.

Archiviazione di Azure è una soluzione di archiviazione affidabile, con finalità generali che si integra facilmente con HDInsight.Azure storage is a robust, general-purpose storage solution that integrates seamlessly with HDInsight. HDInsight può usare un contenitore BLOB in Archiviazione di Azure come file system predefinito per il cluster.HDInsight can use a blob container in Azure Storage as the default file system for the cluster. Grazie a un'interfaccia HDFS (Hadoop Distributed File System), tutti i componenti disponibili in HDInsight possono agire direttamente sui dati strutturati o non strutturati archiviati come 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.

Avviso

Sono disponibili diverse opzioni per la creazione di un account di archiviazione di Azure.There are several options available when creating an Azure Storage account. La tabella seguente offre informazioni sulle opzioni supportate con HDInsight:The following table provides information on what options are supported with HDInsight:

Tipo di account di archiviazioneStorage account type Livello di archiviazioneStorage tier Supportato con HDInsightSupported with HDInsight
Account di archiviazione di uso genericoGeneral-purpose Storage Account StandardStandard Yes
  PremiumPremium NoNo
Account di archiviazione BLOBBlob Storage Account Accesso frequenteHot NoNo
  Accesso sporadicoCool NoNo

Non è consigliabile usare il contenitore BLOB predefinito per l'archiviazione dei dati aziendali.We do not recommend that you use the default blob container for storing business data. È consigliabile eliminare il contenitore BLOB predefinito dopo ogni uso per ridurre i costi di archiviazione.Deleting the default blob container after each use to reduce storage cost is a good practice. Si noti che il contenitore predefinito include registri di sistema e applicazioni.Note that the default container contains application and system logs. Assicurarsi di recuperare i registri prima di eliminare il contenitore.Make sure to retrieve the logs before deleting the container.

La condivisione di un contenitore BLOB tra più cluster non è supportata.Sharing one blob container for multiple clusters is not supported.

Architettura di archiviazione di HDInsightHDInsight storage architecture

Nel diagramma seguente viene mostrata una visualizzazione astratta dell'architettura di archiviazione HDInsight dell'uso di Archiviazione di Azure:The following diagram provides an abstract view of the HDInsight storage architecture of using Azure Storage:

I cluster Hadoop usano l'API HDFS per accedere e archiviare dati strutturati e non strutturati nell'archiviazione BLOB.Hadoop clusters use the HDFS API to access and store structured and unstructured data in Blob storage.

HDInsight offre accesso al file system distribuito collegato localmente ai nodi di calcolo.HDInsight provides access to the distributed file system that is locally attached to the compute nodes. Il file system è accessibile tramite l'URI completo, ad esempio:This file system can be accessed by using the fully qualified URI, for example:

hdfs://<namenodehost>/<path>

HDInsight consente anche di accedere ai dati archiviati in Archiviazione di Azure.In addition, HDInsight allows you to access data that is stored in Azure Storage. La sintassi è:The syntax is:

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

Di seguito sono riportate alcune considerazioni sull'uso di un account di Archiviazione di Azure con i cluster HDInsight.Here are some considerations when using Azure Storage account with HDInsight clusters.

  • Contenitori negli account di archiviazione connessi a un cluster: poiché il nome e la chiave dell'account sono associati al cluster durante il processo di archiviazione, si disporrà di un accesso completo ai BLOB presenti in tali contenitori.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.

  • Contenitori pubblici o BLOB pubblici negli account di archiviazione NON connessi a un cluster: si disporrà di un accesso in sola lettura ai BLOB presenti in tali contenitori.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.

    Nota

    Un contenitore pubblico consente di ottenere un elenco di tutti i BLOB disponibili al suo interno, nonché i metadati del contenitore stesso.Public containers allow you to get a list of all blobs that are available in that container and get container metadata. È possibile accedere a un BLOB pubblico solo se ne conosce l'URL esatto.Public blobs allow you to access the blobs only if you know the exact URL. Per altre informazioni, vedere Limitare l'accesso a contenitori e Blob.For more information, see Restrict access to containers and blobs.

  • Contenitori privati negli account di archiviazione NON connessi a un cluster: non è possibile accedere ai BLOB nei contenitori a meno che non sia stato definito l'account di archiviazione quando sono stati inviati i processi 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 the WebHCat jobs. Questo concetto verrà spiegato più avanti nell'articolo.This is explained later in this article.

Gli account di archiviazione definiti durante il processo di creazione, con le rispettive chiavi, sono archiviati in %HADOOP_HOME%/conf/core-site.xml nei nodi del cluster.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. Il comportamento predefinito di HDInsight consiste nell'usare gli account di archiviazione definiti nel file core-site.xml.The default behavior of HDInsight is to use the storage accounts defined in the core-site.xml file. È possibile modificare questa impostazione usando AmbariYou can modify this setting using Ambari

Più processi WebHCat, inclusi Hive, MapReduce, lo streaming Hadoop e Pig, possono includere una descrizione degli account di archiviazione e dei metadatiMultiple WebHCat jobs, including Hive, MapReduce, Hadoop streaming, and Pig, can carry a description of storage accounts and metadata with them. (questo è valido solo per Pig con account di archiviazione, non per i metadati). Per altre informazioni, vedere Using an HDInsight Cluster with Alternate Storage Accounts and Metastores (Uso di un cluster HDInsight con account di archiviazione e metastore alternativi).(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.

I BLOB possono essere usati per i dati strutturati e non strutturati.Blobs can be used for structured and unstructured data. I contenitori BLOB archiviano i dati come coppie chiave-valore e non esiste una gerarchia di directory.Blob containers store data as key/value pairs, and there is no directory hierarchy. È tuttavia possibile usare il carattere barra ( / ) all'interno del nome della chiave per far sembrare che un file sia archiviato in una struttura di directory.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. Ad esempio, la chiave di un BLOB potrebbe essere input/log1.txt.For example, a blob's key may be input/log1.txt. Non esiste realmente una directory input ma, grazie alla presenza del carattere barra, il nome della chiave ha l'aspetto di un percorso di file.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.

Vantaggi di Archiviazione di AzureBenefits of Azure Storage

I costi impliciti in termini di prestazioni associati alla mancata disponibilità di cluster di elaborazione e risorse di archiviazione in un ambiente condiviso sono mitigati dalla modalità di creazione dei cluster di elaborazione in prossimità delle risorse degli account di archiviazione nell'area di Azure dove la rete ad alta velocità rende efficiente l'accesso ai dati in Archiviazione di Azure dai nodi di calcolo.The implied performance cost of not co-locating 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.

L'archiviazione dei dati in Archiviazione di Azure anziché in HDFS offre numerosi vantaggi:There are several benefits associated with storing the data in Azure storage instead of HDFS:

  • Riuso e condivisione dei dati: i dati in HDFS sono situati all'interno del cluster di calcolo.Data reuse and sharing: The data in HDFS is located inside the compute cluster. Solo le applicazioni che hanno accesso al cluster di calcolo, quindi, possono usare i dati tramite le API HDFS.Only the applications that have access to the compute cluster can use the data by using HDFS APIs. È possibile accedere ai dati in Archiviazione di Azure tramite le API HDFS o tramite le API REST dell'archiviazione BLOB.The data in Azure storage can be accessed either through the HDFS APIs or through the Blob Storage REST APIs. Di conseguenza, è possibile produrre e usare i dati mediante un set più ampio di strumenti e applicazioni, compresi altri cluster HDInsight.Thus, a larger set of applications (including other HDInsight clusters) and tools can be used to produce and consume the data.
  • Archiviazione dei dati: l'archiviazione dei dati in Archiviazione di Azure consente l'eliminazione sicura dei cluster HDInsight usati per i calcoli, senza perdita di dati utente.Data archiving: Storing data in Azure storage enables the HDInsight clusters used for computation to be safely deleted without losing user data.
  • Costo di archiviazione dei dati: l'archiviazione a lungo termine dei dati in DFS è più costosa rispetto ad Archiviazione di Azure, dato che il costo di un cluster di elaborazione è più alto di quello di Archiviazione di 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. Poiché, inoltre, non è necessario ricaricare i dati ogni volta che si genera un cluster di calcolo, si risparmiano anche i costi di caricamento dei dati.In addition, because the data does not have to be reloaded for every compute cluster generation, you are also saving data loading costs.
  • Scalabilità orizzontale elastica: anche se HDFS offre scalabilità orizzontale del file system, la scala è determinata dal numero di nodi di cui si effettua la creazione per il 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. Modificare la scalabilità può diventare quindi un processo più complicato rispetto al semplice uso delle funzionalità di scalabilità elastica automaticamente disponibili in Archiviazione di Azure.Changing the scale can become a more complicated process than relying on the elastic scaling capabilities that you get automatically in Azure storage.
  • Replica geografica: è possibile eseguire la replica geografica di Archiviazione di Azure.Geo-replication: Your Azure storage can be geo-replicated. Sebbene questo offra ripristino geografico e ridondanza dei dati, un failover nella posizione sottoposta a replica geografica incide molto negativamente sulle prestazioni e può comportare costi aggiuntivi.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. È pertanto consigliabile scegliere la scelta della replica geografica con oculatezza e solo se il valore dei dati giustifica i costi aggiuntivi.So our recommendation is to choose the geo-replication wisely and only if the value of the data is worth the additional cost.

Alcuni pacchetti e processi MapReduce possono creare risultati intermedi che non vale la pena di archiviare in Archiviazione di Azure.Certain MapReduce jobs and packages may create intermediate results that you don't really want to store in Azure storage. In questo caso, è possibile scegliere di archiviare i dati nel file system HDFS locale.In that case, you can elect to store the data in the local HDFS. In effetti, HDInsight utilizza DFS per molti di questi risultati intermedi nei processi Hive e in altri processi.In fact, HDInsight uses DFS for several of these intermediate results in Hive jobs and other processes.

Nota

La maggior parte dei comandi HDFS, ad esempio ls, copyFromLocal e mkdir, funziona come previsto.Most HDFS commands (for example, ls, copyFromLocal and mkdir) still work as expected. Solo i comandi specifici dell'implementazione HDFS nativa (denominata DFS), ad esempio fschk e dfsadmin, hanno un comportamento diverso in Archiviazione di Azure.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.

Creare dei contenitori BLOBCreate Blob containers

Per usare i BLOB, è necessario creare innanzitutto un account di archiviazione di Azure.To use blobs, you first create an Azure Storage account. Come parte della procedura, è necessario specificare l'area di Azure in cui viene creato l'account di archiviazione.As part of this, you specify an Azure region where the storage account is created. L'account di archiviazione deve trovarsi nella stessa area del cluster.The cluster and the storage account must be hosted in the same region. Il database SQL Server del metastore Hive, inoltre, deve trovarsi nella stessa area del database SQL Server del metastore Oozie.The Hive metastore SQL Server database and Oozie metastore SQL Server database must also be located in the same region.

Ovunque si trovi, ogni oggetto BLOB creato appartiene a un contenitore presente nell'account di archiviazione di Azure.Wherever it lives, each blob you create belongs to a container in your Azure Storage account. Può trattarsi di un contenitore BLOB esistente, creato all'esterno di HDInsight, oppure di un contenitore creato per un cluster 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.

Il contenitore BLOB predefinito archivia informazioni specifiche del cluster come i log e la cronologia processo.The default Blob container stores cluster-specific information such as job history and logs. Non condividere un contenitore BLOB predefinito con più cluster HDInsight.Don't share a default Blob container with multiple HDInsight clusters. Questa operazione potrebbe danneggiare la cronologia processo.This might corrupt job history. È consigliabile utilizzare un contenitore diverso per ogni cluster e inserire i dati condivisi in un account di archiviazione collegato specificato nella distribuzione di tutti i cluster rilevanti, anziché l'account di archiviazione predefinito.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. Per altre informazioni sulla configurazione degli account di archiviazione collegati, vedere Creare cluster HDInsight.For more information on configuring linked storage accounts, see Create HDInsight clusters. È comunque possibile riusare un contenitore di archiviazione predefinito dopo l'eliminazione del cluster HDInsight originale.However you can reuse a default storage container after the original HDInsight cluster has been deleted. Per i cluster HBase è in realtà possibile mantenere i dati e lo schema della tabella HBase creando un nuovo cluster HBase tramite il contenitore BLOB predefinito usato da un cluster HBase eliminato.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.

Nota

La funzionalità Trasferimento sicuro obbligatorio richiede la connessione sicura per tutte le richieste all'account.The Secure transfer required feature enforces all requests to your account through a secure connection. Questa funzionalità è supportata solo dal cluster HDInsight versione 3.6 o successiva.This feature is only supported by HDInsight cluster version 3.6 or newer. Per altre informazioni, vedere Creare un cluster Hadoop con account di archiviazione con trasferimento sicuro in Azure HDInsight.For more information, see Create Hadoop cluster with secure transfer storage accounts in Azure HDInsight.

Usare il portale di AzureUse the Azure portal

Durante la creazione di un cluster HDInsight dal portale, sono disponibili le opzioni per indicare i dettagli dell'account di archiviazione, come mostrato di seguito.When creating an HDInsight cluster from the Portal, you have the options (as shown below) to provide the storage account details. È inoltre possibile specificare se si desidera associare un account di archiviazione aggiuntivo al cluster e, in caso, se sceglierlo da Data Lake Store o da un altro BLOB del servizio di archiviazione di Azure.You can also specify whether you want an additional storage account associated with the cluster, and if so, choose from Data Lake Store or another Azure Storage blob as the additional storage.

Origine dati della creazione di HDInsight Hadoop

Avviso

L'uso di un account di archiviazione aggiuntivo in una località diversa rispetto al cluster HDInsight non è supportato.Using an additional storage account in a different location than the HDInsight cluster is not supported.

Uso di Azure PowerShellUse Azure PowerShell

Se Azure PowerShell è stato installato e configurato, è possibile usare il comando seguente del prompt di Azure PowerShell per creare un account di archiviazione e un contenitore:If you installed and configured Azure PowerShell, you can use the following from the Azure PowerShell prompt to create a storage account and container:

Importante

Il supporto di Azure PowerShell per la gestione delle risorse HDInsight tramite Azure Service Manager è deprecato ed è stato rimosso dal 1° gennaio 2017.Azure PowerShell support for managing HDInsight resources using Azure Service Manager is deprecated, and was removed on January 1, 2017. La procedura descritta in questo documento usa i nuovi cmdlet HDInsight, compatibili con Azure Resource Manager.The steps in this document use the new HDInsight cmdlets that work with Azure Resource Manager.

Per installare la versione più recente, seguire la procedura descritta in Come installare e configurare Azure PowerShell .Please follow the steps in Install and configure Azure PowerShell to install the latest version of Azure PowerShell. Se sono presenti script che devono essere modificati per l'uso dei nuovi cmdlet compatibili con Azure Resource Manager, per altre informazioni vedere Migrazione a strumenti di sviluppo basati su Azure Resource Manager per i cluster HDInsight .If you have scripts that need to be modified to use the new cmdlets that work with Azure Resource Manager, see Migrating to Azure Resource Manager-based development tools for HDInsight clusters for more information.

$SubscriptionID = "<Your Azure Subscription ID>"
$ResourceGroupName = "<New Azure Resource Group Name>"
$Location = "EAST US 2"

$StorageAccountName = "<New Azure Storage Account Name>"
$containerName = "<New Azure Blob Container Name>"

Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionId $SubscriptionID

# Create resource group
New-AzureRmResourceGroup -name $ResourceGroupName -Location $Location

# Create default storage account
New-AzureRmStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName -Location $Location -Type Standard_LRS 

# Create default blob containers
$storageAccountKey = (Get-AzureRmStorageAccountKey -ResourceGroupName $resourceGroupName -StorageAccountName $StorageAccountName)[0].Value
$destContext = New-AzureStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey  
New-AzureStorageContainer -Name $containerName -Context $destContext

Utilizzare l'interfaccia della riga di comando di AzureUse Azure CLI

Importante

Il supporto dell'interfaccia della riga di comando di Azure per la gestione delle risorse HDInsight tramite Azure Service Manager è deprecato ed è stato rimosso il 1° gennaio 2017.Azure CLI support for managing HDInsight resources using Azure Service Manager (ASM) is deprecated, and was removed on January 1, 2017. La procedura descritta in questo documento usa i nuovi comandi dell'interfaccia della riga di comando di Azure, compatibili con Azure Resource Manager.The steps in this document use the new Azure CLI commands that work with Azure Resource Manager.

Per installare l'ultima versione dell'interfaccia della riga di comando di Azure, seguire la procedura descritta in Installare l'interfaccia della riga di comando di Azure.Follow the steps in Install and configure Azure CLI to install the latest version of the Azure CLI. Se sono presenti script che devono essere modificati per l'uso dei nuovi comandi compatibili con Azure Resource Manager, vedere l'articolo relativo alla migrazione a strumenti di sviluppo basati su Azure Resource Manager per i cluster HDInsight per altre informazioni.If you have scripts that need to be modified to use the new commands that work with Azure Resource Manager, see Migrating to Azure Resource Manager-based development tools for HDInsight clusters for more information.

Se è stata installata e configurata l’interfaccia della riga di comando di Azure, il comando seguente può essere usato per un account di archiviazione e un contenitore.If you have installed and configured the Azure CLI, the following command can be used to a storage account and container.

azure storage account create <storageaccountname> --type LRS

Nota

Il parametro --type indica la modalità di replica dell'account di archiviazione.The --type parameter indicates how the storage account is replicated. Per altre informazioni, vedere Replica di Archiviazione di Azure.For more information, see Azure Storage Replication. Non usare ZRS in quanto ZRS non supporta BLOB di pagine, file, tabelle o code.Don't use ZRS as ZRS doesn't support page blob, file, table, or queue.

Verrà chiesto di specificare l'area geografica in cui verrà creato l'account di archiviazione.You are prompted to specify the geographic region that the storage account is created in. È necessario creare l'account di archiviazione nella stessa area in cui si prevede di creare il cluster HDInsight.You should create the storage account in the same region that you plan on creating your HDInsight cluster.

Dopo aver creato l'account di archiviazione, usare il comando seguente per recuperare le chiavi dell’account di archiviazione:Once the storage account is created, use the following command to retrieve the storage account keys:

azure storage account keys list <storageaccountname>

Per creare un contenitore, usare il comando seguente:To create a container, use the following command:

azure storage container create <containername> --account-name <storageaccountname> --account-key <storageaccountkey>

Accedere ai file in Archiviazione di AzureAddress files in Azure storage

Lo schema URI per l'accesso ai file in Archiviazione di Azure da HDInsight è il seguente:The URI scheme for accessing files in Azure storage from HDInsight is:

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

Lo schema URI offre l'accesso non crittografato (con il prefisso wasb:) e l'accesso con crittografia SSL (con il prefisso wasbs).The URI scheme provides unencrypted access (with the wasb: prefix) and SSL encrypted access (with wasbs). Se possibile, è consigliabile usare wasbs anche per accedere ai dati presenti nella stessa area di Azure.We recommend using wasbs wherever possible, even when accessing data that lives inside the same region in Azure.

<BlobStorageContainerName> identifica il nome del contenitore BLOB in Archiviazione di Azure.The <BlobStorageContainerName> identifies the name of the blob container in Azure storage. <StorageAccountName> identifica il nome dell'account di archiviazione di Azure.The <StorageAccountName> identifies the Azure Storage account name. È necessario specificare un nome di dominio completo (FQDN).A fully qualified domain name (FQDN) is required.

Se non viene specificato <BlobStorageContainerName> né <StorageAccountName>, verrà usato il file system predefinito.If neither <BlobStorageContainerName> nor <StorageAccountName> has been specified, the default file system is used. Per i file presenti nel file system predefinito è possibile usare un percorso relativo o un percorso assoluto.For the files on the default file system, you can use a relative path or an absolute path. Ad esempio, è possibile fare riferimento al file hadoop-mapreduce-examples.jar nei cluster HDInsight nei due modi seguenti: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

Nota

Nei cluster HDInsight versione 2.1 e 1.6 il nome del file è hadoop-examples.jar.The file name is hadoop-examples.jar in HDInsight versions 2.1 and 1.6 clusters.

<path> è il nome del percorso HDFS del file o della directory.The <path> is the file or directory HDFS path name. Poiché i contenitori in Archiviazione di Azure sono semplicemente archivi chiave-valore, non esiste un vero file system gerarchico.Because containers in Azure storage are simply key-value stores, there is no true hierarchical file system. Un carattere barra ( / ) all'interno di una chiave BLOB viene interpretato come un separatore di directory.A slash character ( / ) inside a blob key is interpreted as a directory separator. Ad esempio, il nome BLOB di hadoop-mapreduce-examples.jar è:For example, the blob name for hadoop-mapreduce-examples.jar is:

example/jars/hadoop-mapreduce-examples.jar

Nota

Quando si usano i BLOB al di fuori di HDInsight, la maggior parte delle utilità non riconosce il formato WASB e richiede invece un formato del percorso di base, ad esempio 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.

Accedere ai BLOBAccess blobs

Usare Azure PowerShellUse Azure PowerShell

Nota

I comandi in questa sezione forniscono un esempio di base dell'utilizzo di PowerShell per accedere ai dati archiviati nei BLOB.The commands in this section provide a basic example of using PowerShell to access data stored in blobs. Per un esempio completo personalizzato per l'utilizzo di HDInsight, vedere Strumenti HDInsight.For a more full-featured example that is customized for working with HDInsight, see the HDInsight Tools.

Usare il comando seguente per ottenere un elenco dei cmdlet relativi ai BLOB:Use the following command to list the blob-related cmdlets:

Get-Command *blob*

Elenco dei cmdlet PowerShell correlati al BLOB.

Caricare fileUpload files

VedereCaricare dati in HDInsight.See Upload data to HDInsight.

Download dei fileDownload files

Lo script seguente consente di scaricare un BLOB in blocchi nella cartella corrente.The following script downloads a block blob to the current folder. Prima di eseguire lo script, modificare la directory in una cartella per cui si dispone di autorizzazioni di scrittura.Before running the script, change the directory to a folder where you have write permissions.

$resourceGroupName = "<AzureResourceGroupName>"
$storageAccountName = "<AzureStorageAccountName>"   # The storage account used for the default file system specified at creation.
$containerName = "<BlobStorageContainerName>"  # The default file system container has the same name as the cluster.
$blob = "example/data/sample.log" # The name of the blob to be downloaded.

# Use Add-AzureAccount if you haven't connected to your Azure subscription
Login-AzureRmAccount 
Select-AzureRmSubscription -SubscriptionID "<Your Azure Subscription ID>"

Write-Host "Create a context object ... " -ForegroundColor Green
$storageAccountKey = (Get-AzureRmStorageAccountKey -ResourceGroupName $resourceGroupName -Name $storageAccountName)[0].Value
$storageContext = New-AzureStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey  

Write-Host "Download the blob ..." -ForegroundColor Green
Get-AzureStorageBlobContent -Container $ContainerName -Blob $blob -Context $storageContext -Force

Write-Host "List the downloaded file ..." -ForegroundColor Green
cat "./$blob"

Fornendo il nome del gruppo di risorse e il nome del cluster, è possibile utilizzare il codice seguente:Providing the resource group name and the cluster name, you can use the following code:

$resourceGroupName = "<AzureResourceGroupName>"
$clusterName = "<HDInsightClusterName>"
$blob = "example/data/sample.log" # The name of the blob to be downloaded.

$cluster = Get-AzureRmHDInsightCluster -ResourceGroupName $resourceGroupName -ClusterName $clusterName
$defaultStorageAccount = $cluster.DefaultStorageAccount -replace '.blob.core.windows.net'
$defaultStorageAccountKey = (Get-AzureRmStorageAccountKey -ResourceGroupName $resourceGroupName -Name $defaultStorageAccount)[0].Value
$defaultStorageContainer = $cluster.DefaultStorageContainer
$storageContext = New-AzureStorageContext -StorageAccountName $defaultStorageAccount -StorageAccountKey $defaultStorageAccountKey 

Write-Host "Download the blob ..." -ForegroundColor Green
Get-AzureStorageBlobContent -Container $defaultStorageContainer -Blob $blob -Context $storageContext -Force

Eliminare fileDelete files

Remove-AzureStorageBlob -Container $containerName -Context $storageContext -blob $blob

Elencare fileList files

Get-AzureStorageBlob -Container $containerName -Context $storageContext -prefix "example/data/"

Esecuzione di query Hive utilizzando un account di archiviazione non definitoRun Hive queries using an undefined storage account

Questo esempio illustra come elencare una cartella da un account di archiviazione non definito durante il processo di creazione.This example shows how to list a folder from storage account that is not defined during the creating process. $clusterName = ""$clusterName = ""

$undefinedStorageAccount = "<UnboundedStorageAccountUnderTheSameSubscription>"
$undefinedContainer = "<UnboundedBlobContainerAssociatedWithTheStorageAccount>"

$undefinedStorageKey = Get-AzureStorageKey $undefinedStorageAccount | %{ $_.Primary }

Use-AzureRmHDInsightCluster $clusterName

$defines = @{}
$defines.Add("fs.azure.account.key.$undefinedStorageAccount.blob.core.windows.net", $undefinedStorageKey)

Invoke-AzureRmHDInsightHiveJob -Defines $defines -Query "dfs -ls wasb://$undefinedContainer@$undefinedStorageAccount.blob.core.windows.net/;"

Utilizzare l'interfaccia della riga di comando di AzureUse Azure CLI

Usare il comando seguente per ottenere un elenco dei comandi relativi ai BLOB:Use the following command to list the blob-related commands:

azure storage blob

Esempio di uso dell’interfaccia della riga di comando di Azure per caricare un fileExample of using Azure CLI to upload a file

azure storage blob upload <sourcefilename> <containername> <blobname> --account-name <storageaccountname> --account-key <storageaccountkey>

Esempio di uso dell’interfaccia della riga di comando di Azure per scaricare un fileExample of using Azure CLI to download a file

azure storage blob download <containername> <blobname> <destinationfilename> --account-name <storageaccountname> --account-key <storageaccountkey>

Esempio di uso dell’interfaccia della riga di comando di Azure per eliminare un fileExample of using Azure CLI to delete a file

azure storage blob delete <containername> <blobname> --account-name <storageaccountname> --account-key <storageaccountkey>

Esempio di uso dell’interfaccia della riga di comando di Azure per elencare fileExample of using Azure CLI to list files

azure storage blob list <containername> <blobname|prefix> --account-name <storageaccountname> --account-key <storageaccountkey>

Usare account di archiviazione aggiuntiviUse additional storage accounts

Durante la creazione di un cluster HDInsight viene specificato l'account di Archiviazione di Azure da associare al cluster.While creating an HDInsight cluster, you specify the Azure Storage account you want to associate with it. Oltre a questo account di archiviazione, durante il processo di creazione o dopo la creazione di un cluster è possibile aggiungere altri account di archiviazione della stessa sottoscrizione di Azure o di sottoscrizioni di Azure diverse.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. Per istruzioni sull'aggiunta di altri account di archiviazione, vedere Creare cluster HDInsight.For instructions about adding additional storage accounts, see Create HDInsight clusters.

Avviso

L'uso di un account di archiviazione aggiuntivo in una località diversa rispetto al cluster HDInsight non è supportato.Using an additional storage account in a different location than the HDInsight cluster is not supported.

Passaggi successiviNext steps

In questo articolo è stato descritto come usare una risorsa di archiviazione di Azure compatibile con HDFS con HDInsight.In this article, you learned how to use HDFS-compatible Azure storage with HDInsight. In questo modo sarà possibile creare soluzioni scalabili di acquisizione e archiviazione a lungo termine dei dati e usare HDInsight per sbloccare le informazioni all'interno dei dati strutturati e non strutturati archiviati.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.

Per altre informazioni, vedere:For more information, see: