Personalizzare i cluster HDInsight basati su Linux tramite azioni scriptCustomize Linux-based HDInsight clusters using script actions

HDInsight offre un'opzione di configurazione denominata Azione script che richiama script personalizzati per la personalizzazione del cluster.HDInsight provides a configuration option called Script Action that invokes custom scripts that customize the cluster. Questi script vengono utilizzati per installare i componenti aggiuntivi e modificare le impostazioni di configurazione.These scripts are used to install additional components and change configuration settings. Le azioni script possono essere utilizzate durante o dopo la creazione del cluster.Script actions can be used during or after cluster creation.

Importante

La possibilità di usare le azioni script in un cluster già in esecuzione è disponibile solo per i cluster HDInsight basati su Linux.The ability to use script actions on an already running cluster is only available for Linux-based HDInsight clusters.

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.

Le azioni di script possono anche essere pubblicate in Azure Marketplace come applicazione HDInsight.Script actions can also be published to the Azure Marketplace as an HDInsight application. Alcuni esempi in questo documento mostrano come è possibile installare un'applicazione HDInsight usando i comandi di azione script di PowerShell e .NET SDK.Some of the examples in this document show how you can install an HDInsight application using script action commands from PowerShell and the .NET SDK. Per altre informazioni sulle applicazioni HDInsight, vedere Pubblicare applicazioni HDInsight in Azure Marketplace.For more information on HDInsight applications, see Publish HDInsight applications into the Azure Marketplace.

autorizzazioniPermissions

Se si usa un cluster HDInsight aggiunto a un dominio, sono necessarie due autorizzazioni Ambari per l'uso di azioni script con il cluster:If you are using a domain-joined HDInsight cluster, there are two Ambari permissions that are required when using script actions with the cluster:

  • AMBARI.RUN_CUSTOM_COMMAND: il ruolo di amministratore Ambari ha questa autorizzazione per impostazione predefinita.AMBARI.RUN_CUSTOM_COMMAND: The Ambari Administrator role has this permission by default.
  • CLUSTER.RUN_CUSTOM_COMMAND: sia l'amministratore cluster HDInsight che l'amministratore Ambari hanno questa autorizzazione per impostazione predefinita.CLUSTER.RUN_CUSTOM_COMMAND: Both the HDInsight Cluster Administrator and Ambari Administrator have this permission by default.

Per altre informazioni sull'uso delle autorizzazioni con HDInsight aggiunto a un dominio, vedere Manage domain-joined HDInsight clusters (Gestire cluster HDInsight aggiunti al dominio).For more information on working with permissions with domain-joined HDInsight, see Manage domain-joined HDInsight clusters.

Controllo di accessoAccess control

Se non si è l'amministratore o il proprietario della sottoscrizione di Azure, l'account deve disporre almeno dell'accesso Collaboratore al gruppo di risorse contenente il cluster HDInsight.If you are not the administrator/owner of your Azure subscription, your account must have at least Contributor access to the resource group that contains the HDInsight cluster.

Se si crea un cluster HDInsight, è necessario che un utente con almeno l'accesso Collaboratore alla sottoscrizione di Azure abbia registrato in precedenza il provider per HDInsight.Additionally, if you are creating an HDInsight cluster, someone with at least Contributor access to the Azure subscription must have previously registered the provider for HDInsight. La registrazione del provider viene eseguita quando un utente con accesso Collaboratore alla sottoscrizione crea una risorsa per la prima volta nella sottoscrizione stessa.Provider registration happens when a user with Contributor access to the subscription creates a resource for the first time on the subscription. Può essere eseguita anche senza creare una risorsa registrando un provider tramite REST.It can also be accomplished without creating a resource by registering a provider using REST.

Per altre informazioni sull'uso della gestione degli accessi, vedere i documenti seguenti:For more information on working with access management, see the following documents:

Informazioni sulle azioni scriptUnderstanding script actions

Un'azione script è uno script Bash a cui si forniscono dei parametri e un URI.A script action is Bash script that you provide a URI to, and parameters for. Lo script viene eseguito nei nodi del cluster HDInsight.The script runs on nodes in the HDInsight cluster. Di seguito sono riportate le caratteristiche e funzionalità delle azioni script.The following are characteristics and features of script actions.

  • Devono essere archiviate in un URI accessibile dal cluster HDInsight.Must be stored on a URI that is accessible from the HDInsight cluster. Di seguito vengono indicate alcune tra le posizioni di archiviazione possibili:The following are possible storage locations:

    • Account Azure Data Lake Store accessibile dal cluster HDInsight.An Azure Data Lake Store account that is accessible by the HDInsight cluster. Per informazioni sull'uso di Azure Data Lake Store con HDInsight, vedere Creare un cluster HDInsight con Data Lake Store usando il portale.For information on using Azure Data Lake Store with HDInsight, see Create an HDInsight cluster with Data Lake Store.

      Quando si usa uno script archiviato in Data Lake Store, il formato dell'URI è adl://DATALAKESTOREACCOUNTNAME.azuredatalakestore.net/path_to_file.When using a script stored in Data Lake Store, the URI format is adl://DATALAKESTOREACCOUNTNAME.azuredatalakestore.net/path_to_file.

      Nota

      L'entità servizio usata da HDInsight per accedere a Data Lake Store deve avere accesso in lettura allo script.The service principal HDInsight uses to access Data Lake Store must have read access to the script.

    • Un BLOB in un account di archiviazione di Azure che rappresenta l'account di archiviazione primario o aggiuntivo per il cluster HDInsight.A blob in an Azure Storage account that is either the primary or additional storage account for the HDInsight cluster. HDInsight può accedere a entrambi i tipi di account di archiviazione durante la creazione del cluster.HDInsight is granted access to both of these types of storage accounts during cluster creation.

    • Un servizio di condivisione file pubblico, ad esempio BLOB di Azure, GitHub, OneDrive, Dropbox e così via.A public file sharing service such as Azure Blob, GitHub, OneDrive, Dropbox, etc.

      Per gli URI di esempio, vedere la sezione Script di Azione script di esempio.For example URIs, see the Example script action scripts section.

      Avviso

      HDInsight supporta solo account di archiviazione di Azure per uso generico.HDInsight only supports General-purpose Azure Storage accounts. Non supporta attualmente il tipo di account di archiviazione BLOB.It does not currently support the Blob storage account type.

  • Possono essere limitate all'esecuzione solo in alcuni tipi di nodi, ad esempio nodi head o del ruolo di lavoro.Can be restricted to run on only certain node types, for example head nodes or worker nodes.

  • Possono essere persistenti o ad hoc.Can be persisted or ad hoc.

    Gli script persistenti vengono applicati a nodi di lavoro aggiunti al cluster dopo l'esecuzione degli script.Persisted scripts are applied to worker nodes added to the cluster after the script runs. Ad esempio, durante il ridimensionamento del cluster.For example, when scaling up the cluster.

    Uno script persistente potrebbe anche applicare modifiche apportate a un altro tipo di nodo, ad esempio un nodo head.A persisted script might also apply changes to another node type, such as a head node.

    Importante

    Le azioni script persistenti devono avere un nome univoco.Persisted script actions must have a unique name.

    Gli script ad hoc non sono persistenti.Ad hoc scripts are not persisted. Non vengono infatti applicati ai nodi del ruolo di lavoro aggiunti al cluster dopo l'esecuzione dello script.They are not applied to worker nodes added to the cluster after the script has ran. È possibile alzare di livello uno script ad hoc in un secondo momento per renderlo persistente o abbassare di livello uno script persistente per renderlo ad hoc.You can subsequently promote an ad hoc script to a persisted script, or demote a persisted script to an ad hoc script.

    Importante

    Le azioni script usate durante la creazione di un cluster vengono automaticamente rese persistenti.Script actions used during cluster creation are automatically persisted.

    Gli script che hanno esito negativo non vengono resi persistenti, anche in presenza di indicazioni specifiche in tal senso.Scripts that fail are not persisted, even if you specifically indicate that they should be.

  • Possono accettare parametri usati dallo script durante l'esecuzione.Can accept parameters that are used by the script during execution.

  • Eseguire lo script con privilegi a livello radice nei nodi del cluster.Run with root level privileges on the cluster nodes.
  • Possono essere usate con il portale di Azure, Azure PowerShell, l'interfaccia della riga di comando di Azure o HDInsight .NET SDK.Can be used through the Azure portal, Azure PowerShell, Azure CLI, or HDInsight .NET SDK

Il cluster mantiene una cronologia di tutti gli script eseguiti.The cluster keeps a history of all scripts that have been ran. La cronologia è utile quando è necessario trovare l'ID di uno script per le operazioni di innalzamento o abbassamento di livello.The history is useful when you need to find the ID of a script for promotion or demotion operations.

Importante

Non esiste un metodo automatico per annullare le modifiche apportate da un'azione script.There is no automatic way to undo the changes made by a script action. Annullare manualmente le modifiche o fornire uno script che le inverta.Either manually reverse the changes or provide a script that reverses them.

Azione script nel processo di creazione di clusterScript action in the cluster creation process

Le azioni script usate durante la creazione del cluster sono leggermente diverse da quelle eseguite in un cluster esistente:Script actions used during cluster creation are slightly different from script actions ran on an existing cluster:

  • Lo script viene salvato automaticamente in modo permanente.The script is automatically persisted.
  • Un errore nello script può causare l'esito negativo del processo di creazione del cluster.A failure in the script can cause the cluster creation process to fail.

Il diagramma seguente illustra quando viene eseguita l'azione script durante il processo di creazione:The following diagram illustrates when script action is executed during the creation process:

Personalizzazione di cluster HDInsight e fasi durante la creazione di un clusterHDInsight cluster customization and stages during cluster creation

Lo script viene eseguito durante la configurazione di HDInsight.The script runs while HDInsight is being configured. In questa fase, lo script viene eseguito in parallelo in tutti i nodi specificati nel cluster e con privilegi a livello radice sui nodi.At this stage, the script runs in parallel on all the specified nodes in the cluster, and runs with root privileges on the nodes.

Nota

Dato che lo script viene eseguito con privilegi a livello radice nei nodi del cluster, è possibile eseguire operazioni quali l'arresto e l'avvio dei servizi, inclusi quelli correlati ad Hadoop.Because the script runs with root level privilege on the cluster nodes, you can perform operations like stopping and starting services, including Hadoop-related services. Se si arrestano i servizi, è necessario assicurarsi che i servizi di Ambari e altri servizi correlati ad Hadoop siano attivi prima che termini l'esecuzione dello script.If you stop services, you must ensure that the Ambari service and other Hadoop-related services are up and running before the script finishes running. Questi servizi sono necessari per determinare correttamente l'integrità e lo stato del cluster durante la creazione.These services are required to successfully determine the health and state of the cluster while it is being created.

Durante la creazione del cluster, è possibile usare più azioni di script alla volta.During cluster creation, you can use multiple script actions at once. Questi script vengono richiamati nell'ordine in cui sono stati specificati.These scripts are invoked in the order in which they were specified.

Importante

Le azioni di script devono essere completate entro 60 minuti; in caso contrario si verifica un timeout.Script actions must complete within 60 minutes, or timeout. Durante il provisioning dei cluster, lo script viene eseguito contemporaneamente ad altri processi di installazione e configurazione.During cluster provisioning, the script runs concurrently with other setup and configuration processes. In caso di concorrenza per risorse come il tempo di CPU o la larghezza di banda di rete, lo script può richiedere più tempo per completare l'operazione rispetto al tempo che impiegherebbe in un ambiente di sviluppo.Competition for resources such as CPU time or network bandwidth may cause the script to take longer to finish than it does in your development environment.

Per ridurre al minimo il tempo necessario per eseguire lo script, evitare attività come il download e la compilazione di applicazioni dall'origine.To minimize the time it takes to run the script, avoid tasks such as downloading and compiling applications from source. Precompilare le applicazioni e archiviare il file binario in Archiviazione di Azure.Pre-compile applications and store the binary in Azure Storage.

Azione script in un cluster in esecuzioneScript action on a running cluster

A differenza delle azioni script usate durante la creazione di un cluster, un errore in uno script eseguito in un cluster già in esecuzione non determina automaticamente uno stato di errore del cluster.Unlike script actions used during cluster creation, a failure in a script ran on an already running cluster does not automatically cause the cluster to change to a failed state. Al termine di uno script, il cluster deve restituire uno stato In esecuzione.Once a script completes, the cluster should return to a "running" state.

Importante

Anche se lo stato del cluster è "in esecuzione", lo script non riuscito potrebbe includere attività interrotte.Even if the cluster has a 'running' state, the failed script may have broken things. Ad esempio, uno script potrebbe eliminare file richiesti dal cluster.For example, a script could delete files needed by the cluster.

Le azioni script vengono eseguite con privilegi a livello radice. Occorre quindi conoscere il comportamento di uno script prima di applicarlo al cluster.Scripts actions run with root privileges, so you should make sure that you understand what a script does before applying it to your cluster.

Quando si applica uno script a un cluster, lo stato del cluster passa da In esecuzione ad Accettato, quindi a Configurazione di HDInsight e infine di nuovo a In esecuzione per gli script con esito positivo.When applying a script to a cluster, the cluster state changes from Running to Accepted, then HDInsight configuration, and finally back to Running for successful scripts. Lo stato dello script viene registrato nella cronologia dell'azione script, che può essere usata per determinare l'esito positivo o negativo dello script.The script status is logged in the script action history, and you can use this information to determine whether the script succeeded or failed. Ad esempio, il cmdlet di PowerShell Get-AzureRmHDInsightScriptActionHistory può essere usato per visualizzare lo stato di uno script.For example, the Get-AzureRmHDInsightScriptActionHistory PowerShell cmdlet can be used to view the status of a script. Verranno restituite informazioni simili al testo seguente:It returns information similar to the following text:

ScriptExecutionId : 635918532516474303
StartTime         : 8/14/2017 7:40:55 PM
EndTime           : 8/14/2017 7:41:05 PM
Status            : Succeeded

Nota

Se è stata cambiata la password dell'utente del cluster (admin) dopo la creazione del cluster stesso, questo potrebbe causare l'esito negativo delle azioni script eseguite su questo cluster.If you have changed the cluster user (admin) password after the cluster was created, script actions ran against this cluster may fail. Nel caso in cui siano presenti azioni script persistenti che hanno come destinazione nodi del ruolo di lavoro diversi, questi script potrebbero avere esito negativo se si ridimensiona il cluster.If you have any persisted script actions that target worker nodes, these scripts may fail when you scale the cluster.

Script di esempio di azione scriptExample script action scripts

Gli script di azione script possono essere usati tramite le utilità seguenti:Script action scripts can be used through the following utilities:

  • Portale di AzureAzure portal
  • Azure PowerShellAzure PowerShell
  • Interfaccia della riga di comando di AzureAzure CLI
  • HDInsight .NET SDKHDInsight .NET SDK

HDInsight fornisce script di esempio per installare i componenti seguenti nei cluster HDInsight:HDInsight provides scripts to install the following components on HDInsight clusters:

NomeName ScriptScript
Aggiungere un account di archiviazione di AzureAdd an Azure Storage account https://hdiconfigactions.blob.core.windows.net/linuxaddstorageaccountv01/add-storage-account-v01.sh. Vedere Add additional storage to an HDInsight cluster (Aggiungere altra memoria a un cluster HDInsight).https://hdiconfigactions.blob.core.windows.net/linuxaddstorageaccountv01/add-storage-account-v01.sh. See Add additional storage to an HDInsight cluster.
Installare Hue.Install Hue https://hdiconfigactions.blob.core.windows.net/linuxhueconfigactionv02/install-hue-uber-v02.sh. Vedere Installare e usare Hue in cluster HDInsight.https://hdiconfigactions.blob.core.windows.net/linuxhueconfigactionv02/install-hue-uber-v02.sh. See Install and use Hue on HDInsight clusters.
Installare PrestoInstall Presto https://raw.githubusercontent.com/hdinsight/presto-hdinsight/master/installpresto.sh. Vedere Installare e usare Presto nei cluster HDInsight Hadoop.https://raw.githubusercontent.com/hdinsight/presto-hdinsight/master/installpresto.sh. See Install and use Presto on HDInsight clusters.
Installare SolrInstall Solr https://hdiconfigactions.blob.core.windows.net/linuxsolrconfigactionv01/solr-installer-v01.sh. Vedere Installare e usare Solr nei cluster Hadoop di HDInsight.https://hdiconfigactions.blob.core.windows.net/linuxsolrconfigactionv01/solr-installer-v01.sh. See Install and use Solr on HDInsight clusters.
Installare GiraphInstall Giraph https://hdiconfigactions.blob.core.windows.net/linuxgiraphconfigactionv01/giraph-installer-v01.sh. Vedere Installare Giraph nei cluster HDInsight Hadoop.https://hdiconfigactions.blob.core.windows.net/linuxgiraphconfigactionv01/giraph-installer-v01.sh. See Install and use Giraph on HDInsight clusters.
Precaricare le librerie HivePre-load Hive libraries https://hdiconfigactions.blob.core.windows.net/linuxsetupcustomhivelibsv01/setup-customhivelibs-v01.sh. Vedere l'articolo relativo all' aggiunta di librerie Hive in cluster HDInsight.https://hdiconfigactions.blob.core.windows.net/linuxsetupcustomhivelibsv01/setup-customhivelibs-v01.sh. See Add Hive libraries on HDInsight clusters.
Installare o aggiornare MonoInstall or update Mono https://hdiconfigactions.blob.core.windows.net/install-mono/install-mono.bash.https://hdiconfigactions.blob.core.windows.net/install-mono/install-mono.bash. Vedere Installare o aggiornare Mono in HDInsight.See Install or update Mono on HDInsight.

Usare un'azione script durante la creazione di un clusterUse a script action during cluster creation

In questa sezione vengono forniti esempi sulle diverse modalità di utilizzo delle azioni script durante la creazione di un cluster HDInsight.This section provides examples on the different ways you can use script actions when creating an HDInsight cluster.

Usare un'azione script durante la creazione di un cluster dal portale di AzureUse a script action during cluster creation from the Azure portal

  1. Avviare la creazione di un cluster come descritto in Creare cluster Hadoop in HDInsight.Start creating a cluster as described at Create Hadoop clusters in HDInsight. Fermarsi quando si raggiunge la sezione Riepilogo del cluster.Stop when you reach the Cluster summary section.

  2. Nella sezione Riepilogo del cluster selezionare il collegamento Modifica per Impostazioni avanzate.From the Cluster summary section, select the edit link for Advanced settings.

    Collegamento impostazioni avanzate

  3. Nella sezione Impostazioni avanzate selezionare Azioni script.From the Advanced settings section, select Script actions. Nella sezione Azioni script selezionare + Invia nuovaFrom the Script actions section, select + Submit new

    Inviare una nuova azione script

  4. Usare la voce Seleziona uno script per selezionare uno script pronto.Use the Select a script entry to select a pre-made script. Per usare uno script personalizzato, selezionare Personalizzato e indicare Nome e URI script Bash per lo script.To use a custom script, select Custom and then provide the Name and Bash script URI for your script.

    Aggiungere uno script nel modulo di selezione script

    Nella tabella seguente vengono illustrati gli elementi nel modulo:The following table describes the elements on the form:

    ProprietàProperty ValoreValue
    Selezionare uno scriptSelect a script Per usare uno script personalizzato, selezionare Personalizzato.To use your own script, select Custom. In caso contrario, selezionare uno degli script disponibili.Otherwise, select one of the provided scripts.
    NomeName Specificare un nome per l'azione script.Specify a name for the script action.
    URI script BashBash script URI Specificare l'URI dello script da richiamare per personalizzare il cluster.Specify the URI to the script that is invoked to customize the cluster.
    Head/Worker/ZookeeperHead/Worker/Zookeeper Specificare i nodi head, ruolo di lavoro o Zookeeper in cui viene eseguito lo script di personalizzazione.Specify the nodes (Head, Worker, or ZooKeeper) on which the customization script is run.
    ParametriParameters Specificare i parametri, se richiesti dallo script.Specify the parameters, if required by the script.

    Usare la voce Salvare questa azione script in modo permanente per assicurarsi che lo script venga applicato durante le operazioni di ridimensionamento.Use the Persist this script action entry to ensure that the script is applied during scaling operations.

  5. Selezionare Crea per salvare lo script.Select Create to save the script. È quindi possibile usare + Invia nuovo per aggiungere un altro script.You can then use + Submit new to add another script.

    Azioni script multiple

    Dopo aver completato l'aggiunta degli script, usare il pulsante Seleziona e quindi il pulsante Avanti per tornare alla sezione Riepilogo del cluster.When you are done adding scripts, use the Select button, and then the Next button to return to the Cluster summary section.

  6. Per creare il cluster, selezionare Crea nella sezione Riepilogo del cluster.To create the cluster, select Create from the Cluster summary selection.

Usare un'azione script dai modelli di Azure Resource ManagerUse a script action from Azure Resource Manager templates

Le azioni script possono essere usate con i modelli di Azure Resource Manager.Script actions can be used with Azure Resource Manager templates. Per un esempio, vedere https://azure.microsoft.com/resources/templates/hdinsight-linux-run-script-action/.For an example, see https://azure.microsoft.com/resources/templates/hdinsight-linux-run-script-action/.

In questo esempio, l'azione script viene aggiunta tramite il codice seguente:In this example, the script action is added using the following code:

"scriptActions": [
    {
        "name": "setenvironmentvariable",
        "uri": "[parameters('scriptActionUri')]",
        "parameters": "headnode"
    }
]

Per informazioni su come distribuire un modello, vedere i documenti seguenti:For information on how to deploy a template, see the following documents:

Usare un'azione script durante la creazione di un cluster da Azure PowerShellUse a script action during cluster creation from Azure PowerShell

In questa sezione si userà il cmdlet Add-AzureRmHDInsightScriptAction per richiamare script per personalizzare un cluster.In this section, you use the Add-AzureRmHDInsightScriptAction cmdlet to invoke scripts to customize a cluster. Prima di procedere, assicurarsi di aver installato e configurato Azure PowerShell.Before proceeding, make sure you have installed and configured Azure PowerShell. Per informazioni sulla configurazione di una workstation per l'esecuzione di cmdlet PowerShell per HDInsight, vedere Come installare e configurare Azure PowerShell.For information about configuring a workstation to run HDInsight PowerShell cmdlets, see Install and configure Azure PowerShell.

Lo script seguente mostra come applicare un'azione script durante la creazione di un cluster con PowerShell:The following script demonstrates how to apply a script action when creating a cluster using PowerShell:

# Login to your Azure subscription
# Is there an active Azure subscription?
$sub = Get-AzureRmSubscription -ErrorAction SilentlyContinue
if(-not($sub))
{
    Add-AzureRmAccount
}

# If you have multiple subscriptions, set the one to use
# $subscriptionID = "<subscription ID to use>"
# Select-AzureRmSubscription -SubscriptionId $subscriptionID

# Get user input/default values
$resourceGroupName = Read-Host -Prompt "Enter the resource group name"
$location = Read-Host -Prompt "Enter the Azure region to create resources in"

# Create the resource group
New-AzureRmResourceGroup -Name $resourceGroupName -Location $location

$defaultStorageAccountName = Read-Host -Prompt "Enter the name of the storage account"

# Create an Azure storae account and container
New-AzureRmStorageAccount `
    -ResourceGroupName $resourceGroupName `
    -Name $defaultStorageAccountName `
    -Type Standard_LRS `
    -Location $location
$defaultStorageAccountKey = (Get-AzureRmStorageAccountKey `
                                -ResourceGroupName $resourceGroupName `
                                -Name $defaultStorageAccountName)[0].Value
$defaultStorageContext = New-AzureStorageContext `
                                -StorageAccountName $defaultStorageAccountName `
                                -StorageAccountKey $defaultStorageAccountKey

# Get information for the HDInsight cluster
$clusterName = Read-Host -Prompt "Enter the name of the HDInsight cluster"
# Cluster login is used to secure HTTPS services hosted on the cluster
$httpCredential = Get-Credential -Message "Enter Cluster login credentials" -UserName "admin"
# SSH user is used to remotely connect to the cluster using SSH clients
$sshCredential = Get-Credential -Message "Enter SSH user credentials"

# Default cluster size (# of worker nodes), version, type, and OS
$clusterSizeInNodes = "4"
$clusterVersion = "3.5"
$clusterType = "Hadoop"
$clusterOS = "Linux"
# Set the storage container name to the cluster name
$defaultBlobContainerName = $clusterName

# Create a blob container. This holds the default data store for the cluster.
New-AzureStorageContainer `
    -Name $clusterName -Context $defaultStorageContext

# Create an HDInsight configuration object
$config = New-AzureRmHDInsightClusterConfig
# Add the script action
$scriptActionUri="https://hdiconfigactions.blob.core.windows.net/linuxgiraphconfigactionv01/giraph-installer-v01.sh"
# Add for the head nodes
$config = Add-AzureRmHDInsightScriptAction `
    -Config $config `
    -Name "Install Giraph" `
    -NodeType HeadNode `
    -Uri $scriptActionUri
# Continue adding the script action for any other node types
# that it must run on.
$config = Add-AzureRmHDInsightScriptAction `
    -Config $config `
    -Name "Install Giraph" `
    -NodeType WorkerNode `
    -Uri $scriptActionUri

# Create the cluster using the configuration object
New-AzureRmHDInsightCluster `
    -Config $config `
    -ResourceGroupName $resourceGroupName `
    -ClusterName $clusterName `
    -Location $location `
    -ClusterSizeInNodes $clusterSizeInNodes `
    -ClusterType $clusterType `
    -OSType $clusterOS `
    -Version $clusterVersion `
    -HttpCredential $httpCredential `
    -DefaultStorageAccountName "$defaultStorageAccountName.blob.core.windows.net" `
    -DefaultStorageAccountKey $defaultStorageAccountKey `
    -DefaultStorageContainer $containerName `
    -SshCredential $sshCredential

La creazione del cluster può richiedere alcuni minuti.It can take several minutes before the cluster is created.

Usare un'azione script durante la creazione di un cluster da HDInsight .NET SDKUse a script action during cluster creation from the HDInsight .NET SDK

HDInsight .NET SDK fornisce librerie client che semplificano l'uso di HDInsight da un'applicazione .NET.The HDInsight .NET SDK provides client libraries that makes it easier to work with HDInsight from a .NET application. Per un esempio di codice, vedere Creare cluster basati su Linux in HDInsight tramite .NET SDK.For a code sample, see Create Linux-based clusters in HDInsight using the .NET SDK.

Applicare un'azione script a un cluster in esecuzioneApply a script action to a running cluster

Questa sezione offre informazioni su come applicare azioni script a un cluster in esecuzione.In this section, learn how to apply script actions to a running cluster.

Applicare un'azione script a un cluster in esecuzione dal portale di AzureApply a script action to a running cluster from the Azure portal

  1. Nel portale di Azureselezionare il cluster HDInsight.From the Azure portal, select your HDInsight cluster.

  2. Nella panoramica del cluster HDInsight selezionare il riquadro Azioni script.From the HDInsight cluster overview, select the Script Actions tile.

    Riquadro Azioni script

    Nota

    È anche possibile selezionare Tutte le impostazioni e quindi Azioni script dalla sezione Impostazioni.You can also select All settings and then select Script Actions from the Settings section.

  3. Nella parte superiore della sezione Azioni script selezionare Invia nuova.From the top of the script actions section, select Submit new.

    Aggiungere uno script a un cluster in esecuzione

  4. Usare la voce Seleziona uno script per selezionare uno script pronto.Use the Select a script entry to select a pre-made script. Per usare uno script personalizzato, selezionare Personalizzato e indicare Nome e URI script Bash per lo script.To use a custom script, select Custom and then provide the Name and Bash script URI for your script.

    Aggiungere uno script nel modulo di selezione script

    Nella tabella seguente vengono illustrati gli elementi nel modulo:The following table describes the elements on the form:

    ProprietàProperty ValoreValue
    Selezionare uno scriptSelect a script Per usare uno script personalizzato, selezionare Personalizzato.To use your own script, select custom. In caso contrario, selezionare uno degli script disponibili.Otherwise, select a provided script.
    NomeName Specificare un nome per l'azione script.Specify a name for the script action.
    URI script BashBash script URI Specificare l'URI dello script da richiamare per personalizzare il cluster.Specify the URI to the script that is invoked to customize the cluster.
    Head/Worker/ZookeeperHead/Worker/Zookeeper Specificare i nodi head, ruolo di lavoro o Zookeeper in cui viene eseguito lo script di personalizzazione.Specify the nodes (Head, Worker, or ZooKeeper) on which the customization script is run.
    ParametriParameters Specificare i parametri, se richiesti dallo script.Specify the parameters, if required by the script.

    Usare la voce Salvare questa azione script in modo permanente per assicurarsi che lo script venga applicato durante le operazioni di ridimensionamento.Use the Persist this script action entry to make sure the script is applied during scaling operations.

  5. Infine, usare il pulsante Crea per applicare lo script al cluster.Finally, use the Create button to apply the script to the cluster.

Applicare un'azione script a un cluster in esecuzione da Azure PowerShellApply a script action to a running cluster from Azure PowerShell

Prima di procedere, assicurarsi di aver installato e configurato Azure PowerShell.Before proceeding, make sure you have installed and configured Azure PowerShell. Per informazioni sulla configurazione di una workstation per l'esecuzione di cmdlet PowerShell per HDInsight, vedere Come installare e configurare Azure PowerShell.For information about configuring a workstation to run HDInsight PowerShell cmdlets, see Install and configure Azure PowerShell.

L'esempio seguente mostra come applicare un'azione script a un cluster in esecuzione:The following example demonstrates how to apply a script action to a running cluster:

# Get information for the HDInsight cluster
$clusterName = Read-Host -Prompt "Enter the name of the HDInsight cluster"
$scriptActionName = Read-Host -Prompt "Enter the name of the script action"
$scriptActionUri = Read-Host -Prompt "Enter the URI of the script action"
# The node types that the script action is applied to
$nodeTypes = "headnode", "workernode"

# Apply the script and mark as persistent
Submit-AzureRmHDInsightScriptAction -ClusterName $clusterName `
    -Name $scriptActionName `
    -Uri $scriptActionUri `
    -NodeTypes $nodeTypes `
    -PersistOnSuccess

Al termine dell'operazione, vengono visualizzate informazioni simili alle seguenti:Once the operation completes, you receive information similar to the following text:

OperationState  : Succeeded
ErrorMessage    :
Name            : Giraph
Uri             : https://hdiconfigactions.blob.core.windows.net/linuxgiraphconfigactionv01/giraph-installer-v01.sh
Parameters      :
NodeTypes       : {HeadNode, WorkerNode}

Applicare un'azione script a un cluster in esecuzione dall'interfaccia della riga di comando di AzureApply a script action to a running cluster from the Azure CLI

Prima di procedere, assicurarsi di aver installato e configurato l'interfaccia della riga di comando di Azure.Before proceeding, make sure you have installed and configured the Azure CLI. Per altre informazioni, vedere Installare l'interfaccia della riga di comando di Azure.For more information, see Install the 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.

  1. Per passare alla modalità Azure Resource Manager, usare il comando seguente nella riga di comando:To switch to Azure Resource Manager mode, use the following command at the command line:

     azure config mode arm
    
  2. Usare il comando seguente per eseguire l'autenticazione nella sottoscrizione di Azure.Use the following to authenticate to your Azure subscription.

     azure login
    
  3. Usare il comando seguente per applicare un'azione script a un cluster in esecuzioneUse the following command to apply a script action to a running cluster

     azure hdinsight script-action create <clustername> -g <resourcegroupname> -n <scriptname> -u <scriptURI> -t <nodetypes>
    

    Se non vengono specificati alcuni parametri per il comando, verrà richiesto di specificarli.If you omit parameters for this command, you are prompted for them. Se lo script specificato con -u accetta parametri, è possibile specificarli usando il parametro -p.If the script you specify with -u accepts parameters, you can specify them using the -p parameter.

    I tipi di nodo validi sono headnode, workernode, e zookeeper.Valid node types are headnode, workernode, and zookeeper. Se lo script deve essere applicato a più tipi di nodo, specificare i tipi separati da ';'.If the script should be applied to multiple node types, specify the types separated by a ';'. Ad esempio: -n headnode;workernode.For example, -n headnode;workernode.

    Per salvare lo script in modo permanente, aggiungere --persistOnSuccess.To persist the script, add the --persistOnSuccess. È anche possibile salvare lo script in modo permanente in un secondo momento usando azure hdinsight script-action persisted set.You can also persist the script later by using azure hdinsight script-action persisted set.

    Al termine del processo, viene visualizzato un output simile al testo seguente:Once the job completes, you receive output similar to the following text:

     info:    Executing command hdinsight script-action create
     + Executing Script Action on HDInsight cluster
     data:    Operation Info
     data:    ---------------
     data:    Operation status:
     data:    Operation ID:  b707b10e-e633-45c0-baa9-8aed3d348c13
     info:    hdinsight script-action create command OK
    

Applicare un'azione script a un cluster in esecuzione usando le API RESTApply a script action to a running cluster using REST API

Vedere l'articolo su come eseguire azioni script in un cluster in esecuzione.See Run script actions on a running cluster.

Applicare un'azione script a un cluster in esecuzione da HDInsight .NET SDKApply a script action to a running cluster from the HDInsight .NET SDK

Per un esempio relativo all'uso di .NET SDK per applicare script a un cluster, vedere https://github.com/Azure-Samples/hdinsight-dotnet-script-action.For an example of using the .NET SDK to apply scripts to a cluster, see https://github.com/Azure-Samples/hdinsight-dotnet-script-action.

Visualizzare la cronologia, alzare e abbassare di livello le azioni scriptView history, promote, and demote script actions

Uso del portale di AzureUsing the Azure portal

  1. Nel portale di Azureselezionare il cluster HDInsight.From the Azure portal, select your HDInsight cluster.

  2. Nella panoramica del cluster HDInsight selezionare il riquadro Azioni script.From the HDInsight cluster overview, select the Script Actions tile.

    Riquadro Azioni script

    Nota

    È anche possibile selezionare Tutte le impostazioni e quindi Azioni script dalla sezione Impostazioni.You can also select All settings and then select Script Actions from the Settings section.

  3. Una cronologia degli script per il cluster viene visualizzata nella sezione Azioni script.A history of scripts for this cluster is displayed on the script actions section. Queste informazioni includono un elenco degli script persistenti.This information includes a list of persisted scripts. Nella schermata seguente si noterà che lo script Solr è stato eseguito nel cluster,In the screenshot below, you can see that the Solr script has been ran on this cluster. la schermata tuttavia non mostra script persistenti.The screenshot does not show any persisted scripts.

    Sezione Azioni script

  4. Selezionando uno script nella cronologia, viene visualizzata la sezione Proprietà per lo script.Selecting a script from the history displays the Properties section for this script. Nella parte superiore della schermata è possibile eseguire di nuovo lo script o alzarlo di livello.From the top of the screen, you can rerun the script or promote it.

    Proprietà delle azioni script

  5. È anche possibile usare i puntini di sospensione ... a destra delle voci nella sezione Azioni script per eseguire alcune operazioni.You can also use the ... to the right of entries on the script actions section to perform actions.

    Uso di ... nelle azioni script

Uso di Azure PowerShellUsing Azure PowerShell

UsareUse the following... PerTo ...
Get-AzureRmHDInsightPersistedScriptActionGet-AzureRmHDInsightPersistedScriptAction Recuperare informazioni sulle azioni script persistentiRetrieve information on persisted script actions
Get-AzureRmHDInsightScriptActionHistoryGet-AzureRmHDInsightScriptActionHistory Recuperare una cronologia delle azioni script applicate al cluster o i dettagli di uno script specificoRetrieve a history of script actions applied to the cluster, or details for a specific script
Set-AzureRmHDInsightPersistedScriptActionSet-AzureRmHDInsightPersistedScriptAction Alzare di livello un'azione script ad hoc per renderla un'azione script persistentePromotes an ad hoc script action to a persisted script action
Remove-AzureRmHDInsightPersistedScriptActionRemove-AzureRmHDInsightPersistedScriptAction Abbassare di livello un'azione script persistente per renderla un'azione script ad hocDemotes a persisted script action to an ad hoc action

Importante

Usando Remove-AzureRmHDInsightPersistedScriptAction non vengono annullate le azioni eseguite da uno script.Using Remove-AzureRmHDInsightPersistedScriptAction does not undo the actions performed by a script. Questo cmdlet rimuove solo il flag persistente.This cmdlet only removes the persisted flag.

Lo script di esempio seguente mostra come usare i cmdlet per alzare di livello e poi abbassare di livello uno script.The following example script demonstrates using the cmdlets to promote, then demote a script.

# Get a history of scripts
Get-AzureRmHDInsightScriptActionHistory -ClusterName mycluster

# From the list, we want to get information on a specific script
Get-AzureRmHDInsightScriptActionHistory -ClusterName mycluster `
    -ScriptExecutionId 635920937765978529

# Promote this to a persisted script
# Note: the script must have a unique name to be promoted
# if the name is not unique, you receive an error
Set-AzureRmHDInsightPersistedScriptAction -ClusterName mycluster `
    -ScriptExecutionId 635920937765978529

# Demote the script back to ad hoc
# Note that demotion uses the unique script name instead of
# execution ID.
Remove-AzureRmHDInsightPersistedScriptAction -ClusterName mycluster `
    -Name "Install Giraph"

Uso dell'interfaccia della riga di comando di AzureUsing the Azure CLI

UsareUse the following... PerTo ...
azure hdinsight script-action persisted list <clustername> Recuperare un elenco di azioni script con salvataggio permanenteRetrieve a list of persisted script actions
azure hdinsight script-action persisted show <clustername> <scriptname> Recuperare informazioni su una specifica azione script con salvataggio permanenteRetrieve information on a specific persisted script action
azure hdinsight script-action history list <clustername> Recuperare una cronologia delle azioni script applicate al clusterRetrieve a history of script actions applied to the cluster
azure hdinsight script-action history show <clustername> <scriptname> Recuperare informazioni su un'azione script specificaRetrieve information on a specific script action
azure hdinsight script action persisted set <clustername> <scriptexecutionid> Alzare di livello un'azione script ad hoc per renderla un'azione script persistentePromotes an ad hoc script action to a persisted script action
azure hdinsight script-action persisted delete <clustername> <scriptname> Abbassare di livello un'azione script persistente per renderla un'azione script ad hocDemotes a persisted script action to an ad hoc action

Importante

Usando azure hdinsight script-action persisted delete non vengono annullate le azioni eseguite da uno script.Using azure hdinsight script-action persisted delete does not undo the actions performed by a script. Questo cmdlet rimuove solo il flag persistente.This cmdlet only removes the persisted flag.

Uso di HDInsight .NET SDKUsing the HDInsight .NET SDK

Per un esempio relativo all'uso di .NET SDK per recuperare la cronologia degli script da un cluster e alzare o abbassare di livello gli script, vedere https://github.com/Azure-Samples/hdinsight-dotnet-script-action.For an example of using the .NET SDK to retrieve script history from a cluster, promote or demote scripts, see https://github.com/Azure-Samples/hdinsight-dotnet-script-action.

Nota

Questo esempio mostra anche come installare un'applicazione HDInsight mediante .NET SDK.This example also demonstrates how to install an HDInsight application using the .NET SDK.

Supporto per software open source usato nei cluster HDInsightSupport for open-source software used on HDInsight clusters

Il servizio Microsoft Azure HDInsight usa un ecosistema di tecnologie open source ispirate ad Hadoop.The Microsoft Azure HDInsight service uses an ecosystem of open-source technologies formed around Hadoop. Microsoft Azure offre un livello di supporto generale per le tecnologie open source.Microsoft Azure provides a general level of support for open-source technologies. Per altre informazioni, vedere la sezione Ambito del supporto nel sito Web delle domande frequenti sul supporto tecnico di Azure.For more information, see the Support Scope section of the Azure Support FAQ website. Il servizio HDInsight offre un livello di supporto aggiuntivo per i componenti predefiniti.The HDInsight service provides an additional level of support for built-in components.

Nel servizio HDInsight sono disponibili due tipi di componenti open source:There are two types of open-source components that are available in the HDInsight service:

  • Componenti predefiniti - Questi componenti sono preinstallati nei cluster HDInsight e forniscono la funzionalità di base del cluster.Built-in components - These components are pre-installed on HDInsight clusters and provide core functionality of the cluster. Questa categoria include ad esempio il gestore risorse YARN, il linguaggio di query Hive (HiveQL) e la libreria Mahout.For example, YARN ResourceManager, the Hive query language (HiveQL), and the Mahout library belong to this category. L'elenco completo dei componenti del cluster è disponibile in Novità delle versioni cluster di Hadoop incluse in HDInsight.A full list of cluster components is available in What's new in the Hadoop cluster versions provided by HDInsight.
  • Componenti personalizzati - Un utente del cluster può installare o usare nel carico di lavoro qualsiasi componente disponibile nella community o creato da lui stesso.Custom components - You, as a user of the cluster, can install or use in your workload any component available in the community or created by you.

Avviso

I componenti forniti con il cluster HDInsight sono completamente supportati.Components provided with the HDInsight cluster are fully supported. Il supporto tecnico Microsoft aiuta a isolare e risolvere i problemi legati a tali componenti.Microsoft Support helps to isolate and resolve issues related to these components.

I componenti personalizzati ricevono supporto commercialmente ragionevole per semplificare la risoluzione dei problemi.Custom components receive commercially reasonable support to help you to further troubleshoot the issue. Il supporto tecnico Microsoft potrebbe essere in grado di risolvere il problema OPPURE richiedere di usare i canali disponibili per le tecnologie open source, in cui è possibile ottenere supporto estremamente competente per la tecnologia specifica.Microsoft support may be able to resolve the issue OR they may ask you to engage available channels for the open source technologies where deep expertise for that technology is found. È ad esempio possibile ricorrere a molti siti di community, come il forum MSDN per HDInsight o http://stackoverflow.com. Anche per i progetti Apache sono disponibili siti specifici in http://apache.org, ad esempio Hadoop.For example, there are many community sites that can be used, like: MSDN forum for HDInsight, http://stackoverflow.com. Also Apache projects have project sites on http://apache.org, for example: Hadoop.

Il servizio HDInsight permette di usare i componenti personalizzati in molti modi.The HDInsight service provides several ways to use custom components. Indipendentemente dal modo in cui un componente viene usato o installato nel cluster, verrà applicato lo stesso livello di supporto.The same level of support applies, regardless of how a component is used or installed on the cluster. L'elenco seguente illustra i modi più comuni per usare i componenti personalizzati nei cluster HDInsight:The following list describes the most common ways that custom components can be used on HDInsight clusters:

  1. Invio di processi - È possibile inviare al cluster processi Hadoop o di altro tipo che eseguono o usano componenti personalizzati.Job submission - Hadoop or other types of jobs that execute or use custom components can be submitted to the cluster.

  2. Personalizzazione del cluster - Durante la creazione di un cluster, è possibile specificare impostazioni aggiuntive e componenti personalizzati, che verranno installati nei nodi del cluster.Cluster customization - During cluster creation, you can specify additional settings and custom components that are installed on the cluster nodes.

  3. Esempi - Microsoft e altri utenti possono fornire esempi relativi all'uso dei componenti personalizzati più diffusi nei cluster HDInsight.Samples - For popular custom components, Microsoft and others may provide samples of how these components can be used on the HDInsight clusters. Questi esempi vengono forniti senza supporto.These samples are provided without support.

Risoluzione dei problemiTroubleshooting

È possibile usare l'interfaccia utente Web Ambari per visualizzare le informazioni registrate dalle azioni script.You can use Ambari web UI to view information logged by script actions. Se lo script ha esito negativo durante la creazione del cluster, i log sono disponibili anche nell'account di archiviazione predefinito associato al cluster.If the script fails during cluster creation, the logs are also available in the default storage account associated with the cluster. Questa sezione fornisce informazioni su come recuperare i registri usando entrambe le opzioni.This section provides information on how to retrieve the logs using both these options.

Utilizzo dell'interfaccia utente Web AmbariUsing the Ambari Web UI

  1. Nel browser passare a https://CLUSTERNAME.azurehdinsight.net.In your browser, navigate to https://CLUSTERNAME.azurehdinsight.net. Sostituire CLUSTERNAME con il nome del cluster HDInsight.Replace CLUSTERNAME with the name of your HDInsight cluster.

    Quando richiesto, immettere il nome dell'account amministratore (admin) e la password per il cluster.When prompted, enter the admin account name (admin) and password for the cluster. Potrebbe essere necessario immettere di nuovo le credenziali di amministratore in un Web Form.You may have to reenter the admin credentials in a web form.

  2. Nella barra nella parte superiore della pagina fare clic sulla voce ops.From the bar at the top of the page, select the ops entry. Verrà visualizzato un elenco delle operazioni correnti e precedenti eseguite nel cluster tramite Ambari.A list of current and previous operations performed on the cluster through Ambari is displayed.

    Barra nell'interfaccia utente di Ambari con selezionato ops

  3. Trovare le voci con run_customscriptaction nella colonna Operations.Find the entries that have run_customscriptaction in the Operations column. Queste voci vengono create quando si eseguono le azioni script.These entries are created when the script actions run.

    Schermata delle operazioni

    Selezionare la voce run\customscriptaction ed eseguire il drill-down dei collegamenti per visualizzare l'output di STDOUT e STDERR.To view the STDOUT and STDERR output, select the run\customscriptaction entry and drill down through the links. Questo output viene generato all'esecuzione dello script e può contenere informazioni utili.This output is generated when the script runs, and may contain useful information.

Accesso ai registri dall'account di archiviazione predefinitoAccess logs from the default storage account

Se la creazione del cluster non riesce a causa di un errore nello script, i log vengono conservati nell'account di archiviazione cluster.If cluster creation fails due to a script error, the logs are kept in the cluster storage account.

  • I registri di archiviazione sono disponibili in \STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\CLUSTER_NAME\DATE.The storage logs are available at \STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\CLUSTER_NAME\DATE.

    Schermata delle operazioni

    In questa directory i registri sono organizzati per nodi head, nodi del ruolo di lavoro e nodi zookeeper.Under this directory, the logs are organized separately for headnode, workernode, and zookeeper nodes. Di seguito sono riportati alcuni esempi:Some examples are:

    • Nodo head - <uniqueidentifier>AmbariDb-hn0-<generated_value>.cloudapp.netHeadnode - <uniqueidentifier>AmbariDb-hn0-<generated_value>.cloudapp.net

    • Nodo del ruolo di lavoro - <uniqueidentifier>AmbariDb-wn0-<generated_value>.cloudapp.netWorker node - <uniqueidentifier>AmbariDb-wn0-<generated_value>.cloudapp.net

    • Nodo Zookeeper - <uniqueidentifier>AmbariDb-zk0-<generated_value>.cloudapp.netZookeeper node - <uniqueidentifier>AmbariDb-zk0-<generated_value>.cloudapp.net

  • Tutti i file stdout e stderr dell'host corrispondente vengono caricati nell'account di archiviazione.All stdout and stderr of the corresponding host is uploaded to the storage account. Per ogni azione script esiste un file output-*.txt e un file errors-*.txt.There is one output-*.txt and errors-*.txt for each script action. Il file output-.txt contiene informazioni relative all'URI dello script che è stato eseguito nell'host.The output-.txt file contains information about the URI of the script that got run on the host. Ad esempioFor example

      'Start downloading script locally: ', u'https://hdiconfigactions.blob.core.windows.net/linuxrconfigactionv01/r-installer-v01.sh'
    
  • È possibile creare più volte un cluster dell'azione di script con lo stesso nome.It's possible that you repeatedly create a script action cluster with the same name. In questo caso, è possibile distinguere i registri corrispondenti in base al nome della cartella della data.In such case, you can distinguish the relevant logs based on the DATE folder name. Ad esempio, la struttura di cartelle per un cluster (mycluster) creato in diverse date sarà simile alle seguenti voci di registro:For example, the folder structure for a cluster (mycluster) created on different dates appears similar to the following log entries:

    \STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\mycluster\2015-10-04``\STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\mycluster\2015-10-05\STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\mycluster\2015-10-04 \STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\mycluster\2015-10-05

  • Se in uno stesso giorno si creano più cluster dell'azione di script con lo stesso nome, è possibile usare il prefisso univoco per identificare i file di registro corrispondenti.If you create a script action cluster with the same name on the same day, you can use the unique prefix to identify the relevant log files.

  • Se si crea un cluster verso le 00.00 (mezzanotte), è possibile che i file di log si estendano su due giorni.If you create a cluster near 12:00AM (midnight), it's possible that the log files span across two days. In questi casi, per lo stesso cluster vengono visualizzate due diverse cartelle della data.In such cases, you see two different date folders for the same cluster.

  • Il caricamento dei file di registro nel contenitore predefinito può richiedere fino a 5 minuti, soprattutto per i cluster di grandi dimensioni.Uploading log files to the default container can take up to 5 mins, especially for large clusters. Se si desidera accedere ai file di registro, quindi, è opportuno non eliminare immediatamente il cluster in caso di esito negativo di un'azione di script.So, if you want to access the logs, you should not immediately delete the cluster if a script action fails.

Watchdog AmbariAmbari watchdog

Avviso

Non modificare la password del watchdog Ambari (hdinsightwatchdog) nel cluster HDInsight basato su Linux.Do not change the password for the Ambari Watchdog (hdinsightwatchdog) on your Linux-based HDInsight cluster. La modifica della password per questo account rende impossibile eseguire nuove azioni script nel cluster HDInsight.Changing the password for this account breaks the ability to run new script actions on the HDInsight cluster.

Non è possibile importare il nome BlobServiceCan't import name BlobService

Sintomi: l'azione script non riesce.Symptoms: The script action fails. Quando si visualizza l'operazione in Ambari, viene restituito un errore simile al seguente:Text similar to the following error is displayed when you view the operation in Ambari:

Traceback (most recent call list):
  File "/var/lib/ambari-agent/cache/custom_actions/scripts/run_customscriptaction.py", line 21, in <module>
    from azure.storage.blob import BlobService
ImportError: cannot import name BlobService

Causa: questo errore si verifica se si aggiorna il client di archiviazione di Azure Python incluso con il cluster HDInsight.Cause: This error occurs if you upgrade the Python Azure Storage client that is included with the HDInsight cluster. HDInsight prevede l'uso della versione 0.20.0 del client di archiviazione di Azure.HDInsight expects Azure Storage client 0.20.0.

Risoluzione: per risolvere questo problema, connettersi manualmente a ciascun nodo del cluster usando ssh e usare il comando seguente per reinstallare la versione corretta del client di archiviazione:Resolution: To resolve this error, manually connect to each cluster node using ssh and use the following command to reinstall the correct storage client version:

sudo pip install azure-storage==0.20.0

Per informazioni sulla connessione al cluster tramite SSH, vedere Usare SSH con HDInsight.For information on connecting to the cluster with SSH, see Use SSH with HDInsight.

La cronologia non mostra gli script usati durante la creazione di un clusterHistory doesn't show scripts used during cluster creation

Se il cluster è stato creato prima del 15 marzo 2016, potrebbe non essere visualizzata una voce nella cronologia delle azioni script.If your cluster was created before March 15, 2016, you may not see an entry in script action history. Ridimensionando il cluster, gli script verranno visualizzati nella cronologia delle azioni script.Resizing the cluster causes the scripts to appear in script action history.

Sussistono due eccezioni:There are two exceptions:

  • Se il cluster è stato creato prima del 1° settembre 2015.If your cluster was created before September 1, 2015. Le azioni script sono state introdotte in questa data.This date is when script actions were introduced. Per i cluster creati prima di tale data non possono quindi essere state usate le azioni script.Any cluster created before this date could not have used script actions for cluster creation.

  • Se sono state usate più azioni script durante la creazione del cluster ed è stato usato lo stesso nome per più script oppure lo stesso nome e lo stesso URI ma parametri diversi per più script.If you used multiple script actions during cluster creation, and used the same name for multiple scripts, or the same name, same URI, but different parameters for multiple scripts. In questi casi si riceve un errore simile al seguente:In these cases, you receive the following error:

    Non è possibile eseguire nuove azioni script nel cluster a causa di nomi di script in conflitto negli script esistenti.No new script actions can be ran on this cluster due to conflicting script names in existing scripts. I nomi di script forniti durante la creazione del cluster devono essere tutti univoci.Script names provided at cluster create must be all unique. Gli script esistenti vengono eseguiti durante il ridimensionamento.Existing scripts are ran on resize.

Passaggi successiviNext steps