Usare le firme di accesso condiviso di archiviazione di Azure per limitare l'accesso ai dati in HDInsightUse Azure Storage Shared Access Signatures to restrict access to data in HDInsight

HDInsight ha accesso completo ai dati negli account di archiviazione di Azure associati al cluster.HDInsight has full access to data in the Azure Storage accounts associated with the cluster. È possibile usare le firme di accesso condiviso nel contenitore BLOB per limitare l'accesso ai dati,You can use Shared Access Signatures on the blob container to restrict access to the data. ad esempio per fornire accesso di sola lettura ai dati.For example, to provide read-only access to the data. Le firme di accesso condiviso sono una funzionalità degli account di archiviazione di Azure che consente di limitare l'accesso ai dati.Shared Access Signatures (SAS) are a feature of Azure storage accounts that allows you to limit access to data. Ad esempio, concedendo l'accesso in sola lettura ai dati.For example, providing read-only access to data.

Importante

Per una soluzione che usi Apache Ranger, considerare la possibilità di usare HDInsight aggiunto al dominio.For a solution using Apache Ranger, consider using domain-joined HDInsight. Per altre informazioni, vedere il documento Configurare i cluster HDInsight aggiunti al dominio.For more information, see the Configure domain-joined HDInsight document.

Avviso

HDInsight deve avere accesso completo alla risorsa di archiviazione predefinita per il cluster.HDInsight must have full access to the default storage for the cluster.

RequisitiRequirements

  • Una sottoscrizione di Azure.An Azure subscription
  • C# o Python.C# or Python. Il codice di esempio in C# viene fornito come soluzione di Visual Studio.C# example code is provided as a Visual Studio solution.

    • Visual Studio versione 2013, 2015 o 2017Visual Studio must be version 2013, 2015, or 2017
    • Python versione 2.7 o successiva.Python must be version 2.7 or higher
  • Un cluster HDInsight basato su Linux OPPURE Azure PowerShell. Se è disponibile un cluster basato su Linux esistente, è possibile usare Ambari per aggiungere una firma di accesso condiviso al cluster.A Linux-based HDInsight cluster OR Azure PowerShell - If you have an existing Linux-based cluster, you can use Ambari to add a Shared Access Signature to the cluster. In caso contrario, è possibile usare Azure PowerShell per creare un cluster e aggiungere una firma di accesso condiviso durante la creazione del cluster.If not, you can use Azure PowerShell to create a cluster and add a Shared Access Signature during cluster creation.

    Importante

    Linux è l'unico sistema operativo usato in HDInsight versione 3.4 o successiva.Linux is the only operating system used on HDInsight version 3.4 or greater. Per altre informazioni, vedere la sezione relativa al ritiro di HDInsight in Windows.For more information, see HDInsight retirement on Windows.

  • I file di esempio da https://github.com/Azure-Samples/hdinsight-dotnet-python-azure-storage-shared-access-signature.The example files from https://github.com/Azure-Samples/hdinsight-dotnet-python-azure-storage-shared-access-signature. Il repository contiene gli elementi seguenti:This repository contains the following items:

    • Un progetto di Visual Studio che può creare un contenitore di archiviazione, i criteri archiviati e la firma di accesso condiviso da usare con HDInsight.A Visual Studio project that can create a storage container, stored policy, and SAS for use with HDInsight
    • Uno script di Python che può creare un contenitore di archiviazione, i criteri archiviati e la firma di accesso condiviso da usare con HDInsight.A Python script that can create a storage container, stored policy, and SAS for use with HDInsight
    • Uno script di PowerShell in grado di creare un cluster HDInsight e configurarlo per l'uso della firma di accesso condiviso.A PowerShell script that can create a HDInsight cluster and configure it to use the SAS.

Firme di accesso condivisoShared Access Signatures

Esistono due tipi di firme di accesso condiviso:There are two forms of Shared Access Signatures:

  • Ad hoc: l'ora di inizio, la scadenza e le autorizzazioni per la firma di accesso condiviso vengono tutte specificate nell'URI corrispondente.Ad hoc: The start time, expiry time, and permissions for the SAS are all specified on the SAS URI.

  • Criteri di accesso archiviati: i criteri di accesso archiviati vengono definiti per un contenitore di risorse, ovvero un contenitore BLOB.Stored access policy: A stored access policy is defined on a resource container, such as a blob container. I criteri di accesso archiviati possono essere usati per gestire i vincoli per una o più firme di accesso condiviso.A policy can be used to manage constraints for one or more shared access signatures. Quando si associa una firma di accesso condiviso a criteri di accesso archiviati, la firma eredita i vincoli, ovvero ora di inizio, scadenza e autorizzazioni, definiti per i criteri di accesso archiviati.When you associate a SAS with a stored access policy, the SAS inherits the constraints - the start time, expiry time, and permissions - defined for the stored access policy.

La differenza tra le due forme è importante un unico scenario chiave, la revoca.The difference between the two forms is important for one key scenario: revocation. Una firma di accesso condiviso è un URL, pertanto chiunque la ottiene può utilizzarla indipendentemente da chi l'ha richiesta per iniziare.A SAS is a URL, so anyone who obtains the SAS can use it, regardless of who requested it to begin with. Se la firma di accesso condiviso è stata pubblicata e resa pubblica, può essere usata da chiunque in tutto il mondo.If a SAS is published publicly, it can be used by anyone in the world. Una forma di accesso condiviso rimane valida finché non si verifica una delle quattro condizioni seguenti:A SAS that is distributed is valid until one of four things happens:

  1. Viene raggiunta la scadenza specificata nella firma.The expiry time specified on the SAS is reached.

  2. Viene raggiunta la scadenza specificata nei criteri di accesso archiviati a cui fa riferimento la firma di accesso condiviso.The expiry time specified on the stored access policy referenced by the SAS is reached. Gli scenari seguenti portano a raggiungere la scadenza:The following scenarios cause the expiry time to be reached:

    • L'intervallo di tempo è trascorso.The time interval has elapsed.
    • Per i criteri di accesso archiviati è stata impostata una scadenza nel passato.The stored access policy is modified to have an expiry time in the past. Modificando la scadenza è possibile revocare la firma di accesso condiviso.Changing the expiry time is one way to revoke the SAS.
  3. I criteri di accesso archiviati cui viene fatto riferimento nella firma di accesso condiviso vengono eliminati e ciò corrisponde a un altro modo per revocare la firma.The stored access policy referenced by the SAS is deleted, which is another way to revoke the SAS. Se si ricreano i criteri di accesso archiviati specificando lo stesso nome, tutti i token di firma di accesso condiviso relativi ai criteri precedenti restano validi, a condizione che l'ora di scadenza indicata nella firma di accesso condiviso non sia trascorsa.If you recreate the stored access policy with the same name, all SAS tokens for the previous policy are valid (if the expiry time on the SAS has not passed). Se si intende revocare la firma di accesso condiviso, verificare di usare un nome diverso per ricreare i criteri di accesso archiviati con scadenza nel futuro.If you intend to revoke the SAS, be sure to use a different name if you recreate the access policy with an expiry time in the future.

  4. La chiave dell'account utilizzata per creare la firma di accesso condiviso viene rigenerata.The account key that was used to create the SAS is regenerated. Se si rigenera la chiave, l'autenticazione di tutte le applicazioni che usano la chiave precedente avrà esito negativo.Regenerating the key causes all applications that use the previous key to fail authentication. Aggiornare tutti i componenti con la nuova chiave.Update all components to the new key.

Importante

L'URI di una firma di accesso condiviso è associato alla chiave dell'account usata per creare la firma e ai relativi criteri di accesso archiviati (se presenti).A shared access signature URI is associated with the account key used to create the signature, and the associated stored access policy (if any). Se non sono specificati criteri di accesso archiviati, l'unico modo per revocare una firma di accesso condiviso consiste nel modificare la chiave dell'account.If no stored access policy is specified, the only way to revoke a shared access signature is to change the account key.

È consigliabile usare sempre i criteri di accesso archiviati.We recommend that you always use stored access policies. Con i criteri archiviati, è possibile revocare le firme o estendere la scadenza in base alle esigenze.When using stored policies, you can either revoke signatures or extend the expiry date as needed. I passaggi illustrati in questo documento permettono di usare i criteri di accesso archiviati per generare firme di accesso condiviso.The steps in this document use stored access policies to generate SAS.

Per altre informazioni sulle firme di accesso condiviso, vedere Informazioni sul modello di firma di accesso condiviso.For more information on Shared Access Signatures, see Understanding the SAS model.

Creare un criterio archiviato e una firma di accesso condiviso con C#Create a stored policy and SAS using C#

  1. Aprire la soluzione in Visual Studio.Open the solution in Visual Studio.

  2. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto SASToken e scegliere Proprietà.In Solution Explorer, right-click on the SASToken project and select Properties.

  3. Selezionare Impostazioni e aggiungere i valori per le voci seguenti:Select Settings and add values for the following entries:

    • StorageConnectionString: stringa di connessione per l'account di archiviazione per cui si vuole creare un criterio archiviato e una firma di accesso condiviso.StorageConnectionString: The connection string for the storage account that you want to create a stored policy and SAS for. Il formato deve essere DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=mykey, dove myaccount è il nome dell'account di archiviazione e mykey è la chiave dell'account di archiviazione.The format should be DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=mykey where myaccount is the name of your storage account and mykey is the key for the storage account.

    • ContainerName: contenitore nell'account di archiviazione a cui si vuole limitare l'accesso.ContainerName: The container in the storage account that you want to restrict access to.

    • SASPolicyName: nome da usare per i criteri archiviati da creare.SASPolicyName: The name to use for the stored policy to create.

    • FileToUpload: percorso di un file caricato nel contenitore.FileToUpload: The path to a file that is uploaded to the container.

  4. Eseguire il progetto.Run the project. Dopo la generazione della firma di accesso condiviso, vengono visualizzate informazioni simili al testo seguente:Information similar to the following text is displayed once the SAS has been generated:

     Container SAS token using stored access policy: sr=c&si=policyname&sig=dOAi8CXuz5Fm15EjRUu5dHlOzYNtcK3Afp1xqxniEps%3D&sv=2014-02-14
    

    Salvare il token dei criteri di firma di accesso condiviso, il nome dell'account di archiviazione e il nome del contenitore.Save the SAS policy token, storage account name, and container name. Questi valori vengono usati quando si associa l'account di archiviazione al cluster HDInsight.These values are used when associating the storage account with your HDInsight cluster.

Creare un criterio archiviato e una firma di accesso condiviso con PythonCreate a stored policy and SAS using Python

  1. Aprire il file SASToken.py e modificare i valori seguenti:Open the SASToken.py file and change the following values:

    • policy_name: nome da usare per i criteri archiviati da creare.policy_name: The name to use for the stored policy to create.

    • storage_account_name: nome del proprio account di archiviazione.storage_account_name: The name of your storage account.

    • storage_account_key: chiave per l'account di archiviazione.storage_account_key: The key for the storage account.

    • storage_container_name: contenitore nell'account di archiviazione a cui si vuole limitare l'accesso.storage_container_name: The container in the storage account that you want to restrict access to.

    • example_file_path: percorso di un file caricato nel contenitore.example_file_path: The path to a file that is uploaded to the container.

  2. Eseguire lo script.Run the script. Al termine dello script viene visualizzato un token della firma di accesso condiviso simile al testo seguente:It displays the SAS token similar to the following text when the script completes:

     sr=c&si=policyname&sig=dOAi8CXuz5Fm15EjRUu5dHlOzYNtcK3Afp1xqxniEps%3D&sv=2014-02-14
    

    Salvare il token dei criteri di firma di accesso condiviso, il nome dell'account di archiviazione e il nome del contenitore.Save the SAS policy token, storage account name, and container name. Questi valori vengono usati quando si associa l'account di archiviazione al cluster HDInsight.These values are used when associating the storage account with your HDInsight cluster.

Usare la firma di accesso condiviso con HDInsightUse the SAS with HDInsight

Quando si crea un cluster HDInsight è necessario specificare un account di archiviazione primario e, facoltativamente, è possibile specificare account di archiviazione aggiuntivi.When creating an HDInsight cluster, you must specify a primary storage account and you can optionally specify additional storage accounts. Entrambi i metodi di aggiunta di risorse di archiviazione richiedono l'accesso completo agli account di archiviazione e ai contenitori usati.Both of these methods of adding storage require full access to the storage accounts and containers that are used.

Per usare una firma di accesso condiviso allo scopo di limitare l'accesso a un contenitore, aggiungere una voce personalizzata alla configurazione del core-site per il cluster.To use a Shared Access Signature to limit access to a container, add a custom entry to the core-site configuration for the cluster.

  • Per i cluster HDInsight basati su Windows o basati su Linux, è possibile aggiungere la voce durante la creazione del cluster con PowerShell.For Windows-based or Linux-based HDInsight clusters, you can add the entry during cluster creation using PowerShell.
  • Per i cluster HDInsight basati su Linux, modificare la configurazione dopo la creazione del cluster con Ambari.For Linux-based HDInsight clusters, change the configuration after cluster creation using Ambari.

Creare un cluster che usa la firma di accesso condivisoCreate a cluster that uses the SAS

La directory CreateCluster del repository include un esempio di creazione di un cluster HDInsight che usa la firma di accesso condiviso.An example of creating an HDInsight cluster that uses the SAS is included in the CreateCluster directory of the repository. Per usarlo, seguire questa procedura:To use it, use the following steps:

  1. Aprire il file CreateCluster\HDInsightSAS.ps1 in un editor di testo e modificare i valori seguenti all'inizio del documento.Open the CreateCluster\HDInsightSAS.ps1 file in a text editor and modify the following values at the beginning of the document.

    # Replace 'mycluster' with the name of the cluster to be created
    $clusterName = 'mycluster'
    # Valid values are 'Linux' and 'Windows'
    $osType = 'Linux'
    # Replace 'myresourcegroup' with the name of the group to be created
    $resourceGroupName = 'myresourcegroup'
    # Replace with the Azure data center you want to the cluster to live in
    $location = 'North Europe'
    # Replace with the name of the default storage account to be created
    $defaultStorageAccountName = 'mystorageaccount'
    # Replace with the name of the SAS container created earlier
    $SASContainerName = 'sascontainer'
    # Replace with the name of the SAS storage account created earlier
    $SASStorageAccountName = 'sasaccount'
    # Replace with the SAS token generated earlier
    $SASToken = 'sastoken'
    # Set the number of worker nodes in the cluster
    $clusterSizeInNodes = 3
    

    Ad esempio, sostituire 'mycluster' con il nome del cluster che si vuole creare.For example, change 'mycluster' to the name of the cluster you want to create. I valori della firma di accesso condiviso devono corrispondere ai valori usati nei passaggi precedenti durante la creazione di un token dell'account di archiviazione e della firma di accesso condiviso.The SAS values should match the values from the previous steps when creating a storage account and SAS token.

    Dopo aver modificato i valori, salvare il file.Once you have changed the values, save the file.

  2. Aprire un nuovo prompt dei comandi di Azure PowerShell.Open a new Azure PowerShell prompt. Se non si ha familiarità con Azure PowerShell o non è stato installato, vedere Install and configure Azure PowerShell (Installare e configurare Azure PowerShell).If you are unfamiliar with Azure PowerShell, or have not installed it, see Install and configure Azure PowerShell.

  3. Dal prompt dei comandi usare il comando seguente per eseguire l'autenticazione alla sottoscrizione di Azure:From the prompt, use the following command to authenticate to your Azure subscription:

    Login-AzureRmAccount
    

    Quando richiesto, accedere con l'account associato alla sottoscrizione di Azure.When prompted, log in with the account for your Azure subscription.

    Se l'account è associato a più sottoscrizioni di Azure, può essere necessario usare Select-AzureRmSubscription per selezionare la sottoscrizione da usare.If your account is associated with multiple Azure subscriptions, you may need to use Select-AzureRmSubscription to select the subscription you wish to use.

  4. Dal prompt dei comandi, passare alla directory CreateCluster che contiene il file HDInsightSAS.ps1.From the prompt, change directories to the CreateCluster directory that contains the HDInsightSAS.ps1 file. Usare quindi il comando seguente per eseguire lo scriptThen use the following command to run the script

    .\HDInsightSAS.ps1
    

    Durante l'esecuzione dello script, mentre vengono creati il gruppo di risorse e gli account di archiviazione, l'output viene registrato nel prompt di PowerShell.As the script runs, it logs output to the PowerShell prompt as it creates the resource group and storage accounts. Viene chiesto di immettere l'utente HTTP per il cluster HDInsight.You are prompted to enter the HTTP user for the HDInsight cluster. Questo account viene usato per proteggere l'accesso HTTP/s al cluster.This account is used to secure HTTP/s access to the cluster.

    Se si sta creando un cluster basato su Linux, viene chiesto di specificare anche un nome e una password per l'account utente SSH.If you are creating a Linux-based cluster, you are prompted for an SSH user account name and password. Questo account viene usato per accedere in remoto al cluster.This account is used to remotely log in to the cluster.

    Importante

    Quando vengono richiesti un nome e una password per HTTP/S o SSH, è necessario fornire una password che soddisfi i criteri seguenti:When prompted for the HTTP/s or SSH user name and password, you must provide a password that meets the following criteria:

    • La lunghezza non può essere inferiore a 10 caratteriMust be at least 10 characters in length
    • Deve contenere almeno una cifraMust contain at least one digit
    • Deve contenere almeno un carattere non alfanumericoMust contain at least one non-alphanumeric character
    • Deve contenere almeno una lettera maiuscola o minuscolaMust contain at least one upper or lower case letter

Il completamento dello script richiede in genere circa 15 minuti.It takes a while for this script to complete, usually around 15 minutes. Se lo script viene completato senza errori, il cluster è stato creato.When the script completes without any errors, the cluster has been created.

Usare la firma di accesso condiviso con un cluster esistenteUse the SAS with an existing cluster

Se è disponibile un cluster basato su Linux esistente, è possibile aggiungere la firma di accesso condiviso alla configurazione del core-site seguendo questa procedura:If you have an existing Linux-based cluster, you can add the SAS to the core-site configuration by using the following steps:

  1. Aprire l'interfaccia utente Web di Ambari per il cluster.Open the Ambari web UI for your cluster. L'indirizzo di questa pagina è https://NOMECLUSTER.azurehdinsight.net.The address for this page is https://YOURCLUSTERNAME.azurehdinsight.net. Quando richiesto, eseguire l'autenticazione al cluster con il nome amministratore (admin) e la password usati durante la creazione del cluster.When prompted, authenticate to the cluster using the admin name (admin) and password you used when creating the cluster.

  2. Nel lato sinistro dell'interfaccia utente Web di Ambari selezionare HDFS e quindi selezionare la scheda Configs al centro della pagina.From the left side of the Ambari web UI, select HDFS and then select the Configs tab in the middle of the page.

  3. Selezionare la scheda Advanced e scorrere fino alla sezione Custom core-site.Select the Advanced tab, and then scroll until you find the Custom core-site section.

  4. Espandere la sezione Custom core-site, quindi scorrere fino alla fine e selezionare il collegamento Add property.Expand the Custom core-site section, then scroll to the end and select the Add property... link. Usare i valori seguenti per i campi Key e Value:Use the following values for the Key and Value fields:

    • Key: fs.azure.sas.CONTAINERNAME.STORAGEACCOUNTNAME.blob.core.windows.netKey: fs.azure.sas.CONTAINERNAME.STORAGEACCOUNTNAME.blob.core.windows.net
    • Value: la firma di accesso condiviso restituita dall'applicazione C# o Python eseguita in precedenzaValue: The SAS returned by the C# or Python application you ran previously

      Sostituire CONTAINERNAME con il nome del contenitore usato con l'applicazione C# o della firma di accesso condiviso.Replace CONTAINERNAME with the container name you used with the C# or SAS application. Sostituire STORAGEACCOUNTNAME con il nome dell'account di archiviazione usato.Replace STORAGEACCOUNTNAME with the storage account name you used.

  5. Fare clic sul pulsate Add per salvare la chiave e il valore, quindi fare clic sul pulsante Save per salvare le modifiche alla configurazione.Click the Add button to save this key and value, then click the Save button to save the configuration changes. Quando richiesto, aggiungere una descrizione della modifica, ad esempio "aggiunta di accesso alle risorse di archiviazione per le firme di accesso condiviso", e quindi fare clic su Save (Salva).When prompted, add a description of the change ("adding SAS storage access" for example) and then click Save.

    Al termine delle modifiche, fare clic su OK .Click OK when the changes have been completed.

    Importante

    Perché le modifiche siano effettive, è necessario riavviare diversi servizi.You must restart several services before the change takes effect.

  6. Nell'interfaccia utente Web di Ambari selezionare HDFS dall'elenco a sinistra e quindi selezionare Restart All dall'elenco a discesa Service Actions a destra.In the Ambari web UI, select HDFS from the list on the left, and then select Restart All from the Service Actions drop down list on the right. Quando richiesto, selezionare Turn on maintenance mode e quindi selezionare __Conform Restart All".When prompted, select Turn on maintenance mode and then select __Conform Restart All".

    Ripetere il processo per MapReduce2 e YARN.Repeat this process for MapReduce2 and YARN.

  7. Dopo il riavvio di questi servizi, selezionarli uno alla volta e disabilitare la modalità di manutenzione dall'elenco a discesa Service Actions (Azioni servizio).Once the services have restarted, select each one and disable maintenance mode from the Service Actions drop down.

Testare l'accesso limitatoTest restricted access

Per verificare che l'accesso sia effettivamente limitato, usare i metodi seguenti:To verify that you have restricted access, use the following methods:

  • Per i cluster HDInsight basati su Windows , usare Desktop remoto per connettersi al cluster.For Windows-based HDInsight clusters, use Remote Desktop to connect to the cluster. Per altre informazioni, vedere Connettersi a HDInsight con RDP.For more information, see Connect to HDInsight using RDP.

    Dopo aver stabilito la connessione, usare l'icona della riga di comando di Hadoop sul desktop per aprire il prompt dei comandi.Once connected, use the Hadoop Command-Line icon on the desktop to open a command prompt.

  • Per i cluster HDInsight basati su Linux , usare SSH per connettersi al cluster.For Linux-based HDInsight clusters, use SSH to connect to the cluster. Per altre informazioni, vedere Usare SSH con HDInsight.For more information, see Use SSH with HDInsight.

Dopo aver stabilito la connessione al cluster, usare la procedura seguente per verificare che nell'account di archiviazione della firma di accesso condiviso sia solo possibile leggere ed elencare gli elementi:Once connected to the cluster, use the following steps to verify that you can only read and list items on the SAS storage account:

  1. Per elencare il contenuto del contenitore, usare il comando seguente dal prompt:To list the contents of the container, use the following command from the prompt:

    hdfs dfs -ls wasb://SASCONTAINER@SASACCOUNTNAME.blob.core.windows.net/
    

    Sostituire SASCONTAINER con il nome del contenitore creato per l'account di archiviazione della firma di accesso condiviso.Replace SASCONTAINER with the name of the container created for the SAS storage account. Sostituire SASACCOUNTNAME con il nome dell'account di archiviazione usato per la firma di accesso condiviso.Replace SASACCOUNTNAME with the name of the storage account used for the SAS.

    L'elenco include il file caricato quando sono stati creati il contenitore e la firma di accesso condiviso.The list includes the file uploaded when the container and SAS were created.

  2. Usare il comando seguente per verificare che sia possibile leggere il contenuto del file.Use the following command to verify that you can read the contents of the file. Sostituire SASCONTAINER e SASACCOUNTNAME come indicato nel passaggio precedente.Replace the SASCONTAINER and SASACCOUNTNAME as in the previous step. Sostituire FILENAME con il nome del file visualizzato nel comando precedente:Replace FILENAME with the name of the file displayed in the previous command:

    hdfs dfs -text wasb://SASCONTAINER@SASACCOUNTNAME.blob.core.windows.net/FILENAME
    

    Verrà visualizzato il contenuto del file.This command lists the contents of the file.

  3. Usare il comando seguente per scaricare il file nel file system locale:Use the following command to download the file to the local file system:

    hdfs dfs -get wasb://SASCONTAINER@SASACCOUNTNAME.blob.core.windows.net/FILENAME testfile.txt
    

    Il file verrà scaricato in un file locale denominato testfile.txt.This command downloads the file to a local file named testfile.txt.

  4. Usare il comando seguente per caricare il file locale in un nuovo file denominato testupload.txt nella risorsa di archiviazione della firma di accesso condiviso:Use the following command to upload the local file to a new file named testupload.txt on the SAS storage:

    hdfs dfs -put testfile.txt wasb://SASCONTAINER@SASACCOUNTNAME.blob.core.windows.net/testupload.txt
    

    Verrà visualizzato un messaggio simile al testo seguente:You receive a message similar to the following text:

     put: java.io.IOException
    

    Questo errore si verifica perché il percorso di archiviazione è di sola lettura+elenco.This error occurs because the storage location is read+list only. Usare il comando seguente per inserire i dati nella risorsa di archiviazione predefinita per il cluster, accessibile in scrittura:Use the following command to put the data on the default storage for the cluster, which is writable:

    hdfs dfs -put testfile.txt wasb:///testupload.txt
    

    Questa volta l'operazione avrà esito positivo.This time, the operation should complete successfully.

Risoluzione dei problemiTroubleshooting

Un'attività è stata annullataA task was canceled

Sintomi: durante la creazione di un cluster con lo script di PowerShell, si potrebbe ricevere il messaggio di errore seguente:Symptoms: When creating a cluster using the PowerShell script, you may receive the following error message:

New-AzureRmHDInsightCluster : A task was canceled.
At C:\Users\larryfr\Documents\GitHub\hdinsight-azure-storage-sas\CreateCluster\HDInsightSAS.ps1:62 char:5
+     New-AzureRmHDInsightCluster `
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [New-AzureRmHDInsightCluster], CloudException
    + FullyQualifiedErrorId : Hyak.Common.CloudException,Microsoft.Azure.Commands.HDInsight.NewAzureHDInsightClusterCommand

Causa: questo errore può verificarsi se si usa una password per l'utente admin/HTTP per il cluster oppure, nei cluster basati su Linux, per l'utente SSH.Cause: This error can occur if you use a password for the admin/HTTP user for the cluster, or (for Linux-based clusters) the SSH user.

Risoluzione: usare una password che soddisfi i criteri seguenti:Resolution: Use a password that meets the following criteria:

  • La lunghezza non può essere inferiore a 10 caratteriMust be at least 10 characters in length
  • Deve contenere almeno una cifraMust contain at least one digit
  • Deve contenere almeno un carattere non alfanumericoMust contain at least one non-alphanumeric character
  • Deve contenere almeno una lettera maiuscola o minuscolaMust contain at least one upper or lower case letter

Passaggi successiviNext steps

Ora che si è appreso come aggiungere risorse di archiviazione ad accesso limitato al cluster HDInsight, è possibile conoscere altri modi per usare i dati nel cluster:Now that you have learned how to add limited-access storage to your HDInsight cluster, learn other ways to work with data on your cluster: