Gestire cluster Hadoop in HDInsight tramite Azure PowerShellManage Hadoop clusters in HDInsight by using Azure PowerShell

Azure PowerShell può essere usato per controllare e automatizzare la distribuzione e la gestione dei carichi di lavoro in Azure.Azure PowerShell can be used to control and automate the deployment and management of your workloads in Azure. Questo articolo contiene informazioni su come gestire i cluster Hadoop in HDInsight di Azure tramite Azure PowerShell.In this article, you learn how to manage Hadoop clusters in Azure HDInsight by using Azure PowerShell. Per l'elenco dei cmdlet PowerShell per HDInsight, vedere Documentazione di riferimento di cmdlet di HDInsight.For the list of the HDInsight PowerShell cmdlets, see HDInsight cmdlet reference.

PrerequisitiPrerequisites

Per eseguire le procedure descritte nell'articolo sono necessari gli elementi seguenti:Before you begin this article, you must have the following items:

Installare Azure PowerShellInstall Azure PowerShell

Importante

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

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

Se è installato Azure PowerShell versione 0.9x, è necessario disinstallarlo prima di installare una versione più recente.If you have installed Azure PowerShell version 0.9x, you must uninstall it before installing a newer version.

Per controllare la versione di PowerShell installata:To check the version of the installed PowerShell:

Get-Module *azure*

Per disinstallare la versione precedente, eseguire Programmi e Funzionalità nel Pannello di controllo.To uninstall the older version, run Programs and Features in the control panel.

Creare i clusterCreate clusters

Vedere Creare cluster basati su Linux in HDInsight tramite Azure PowerShellSee Create Linux-based clusters in HDInsight using Azure PowerShell

Elencare clusterList clusters

Usare il comando seguente per visualizzare l'elenco di tutti i cluster nella sottoscrizione corrente:Use the following command to list all clusters in the current subscription:

Get-AzureRmHDInsightCluster

Mostrare clusterShow cluster

Usare il comando seguente per visualizzare i dettagli di un cluster specifico nella sottoscrizione corrente:Use the following command to show details of a specific cluster in the current subscription:

Get-AzureRmHDInsightCluster -ClusterName <Cluster Name>

Eliminare clusterDelete clusters

Utilizzare il comando seguente per eliminare un cluster:Use the following command to delete a cluster:

Remove-AzureRmHDInsightCluster -ClusterName <Cluster Name>

È inoltre possibile eliminare un cluster rimuovendo il gruppo di risorse che lo contiene.You can also delete a cluster by removing the resource group that contains the cluster. L'eliminazione di un gruppo di risorse eliminerà tutte le risorse nel gruppo, compreso l’account di archiviazione predefinito.Deleting a resource group deletes all the resources in the group including the default storage account.

Remove-AzureRmResourceGroup -Name <Resource Group Name>

Ridimensionare i clusterScale clusters

La funzionalità di scalabilità del cluster consente di modificare il numero di nodi del ruolo di lavoro usati da un cluster in esecuzione in Azure HDInsight senza dover ricreare il cluster.The cluster scaling feature allows you to change the number of worker nodes used by a cluster that is running in Azure HDInsight without having to re-create the cluster.

Nota

Sono supportati solo i cluster con HDInsight versione 3.1.3 o successive.Only clusters with HDInsight version 3.1.3 or higher are supported. Se non si è certi della versione del cluster, è possibile controllare la pagina delle proprietà.If you are unsure of the version of your cluster, you can check the Properties page. Vedere Elencare e visualizzare i cluster.See List and show clusters.

Questa sezione descrive l'impatto della modifica del numero di nodi dati per ogni tipo di cluster supportato da HDInsight:The impact of changing the number of data nodes for each type of cluster supported by HDInsight:

  • HadoopHadoop

    È possibile aumentare facilmente il numero di nodi del ruolo di lavoro in un cluster Hadoop in esecuzione senza conseguenze per eventuali processi in sospeso o in esecuzione.You can seamlessly increase the number of worker nodes in a Hadoop cluster that is running without impacting any pending or running jobs. È inoltre possibile inviare nuovi processi mentre è in corso l'operazione.New jobs can also be submitted while the operation is in progress. Gli errori in un'operazione di scalabilità vengono gestiti in modo che il cluster rimanga sempre in uno stato funzionale.Failures in a scaling operation are gracefully handled so that the cluster is always left in a functional state.

    Quando un cluster Hadoop viene ridimensionato riducendo il numero di nodi dati, alcuni dei servizi del cluster vengono riavviati.When a Hadoop cluster is scaled down by reducing the number of data nodes, some of the services in the cluster are restarted. A causa del riavvio dei servizi, tutti i processi in esecuzione e in attesa daranno esito negativo dopo il completamento dell'operazione di ridimensionamento.Restarting services causes all running and pending jobs to fail at the completion of the scaling operation. È tuttavia possibile inviare nuovamente i processi una volta completata l'operazione.You can, however, resubmit the jobs once the operation is complete.

  • HBaseHBase

    È possibile aggiungere o rimuovere facilmente nodi nel cluster HBase mentre è in esecuzione.You can seamlessly add or remove nodes to your HBase cluster while it is running. I server a livello di area vengono bilanciati automaticamente entro pochi minuti dal completamento dell'operazione di ridimensionamento.Regional Servers are automatically balanced within a few minutes of completing the scaling operation. È tuttavia possibile anche bilanciare manualmente i server a livello di area accedendo al nodo head del cluster ed eseguendo i comandi seguenti da una finestra del prompt dei comandi:However, you can also manually balance the regional servers by logging in to the headnode of cluster, and then run the following commands from a command prompt window:

    >pushd %HBASE_HOME%\bin
    >hbase shell
    >balancer
    
  • StormStorm

    È possibile aggiungere o rimuovere facilmente nodi dati dal cluster Storm mentre è in esecuzione.You can seamlessly add or remove data nodes to your Storm cluster while it is running. Tuttavia, dopo il completamento dell'operazione di ridimensionamento, è necessario bilanciare nuovamente la topologia.But after a successful completion of the scaling operation, you will need to rebalance the topology.

    A tale scopo, è possibile scegliere tra due opzioni:Rebalancing can be accomplished in two ways:

    • Interfaccia utente Web di StormStorm web UI
    • Interfaccia della riga di comando (CLI)Command-line interface (CLI) tool

      Per altri dettagli, vedere la documentazione di Apache Storm.Refer to the Apache Storm documentation for more details.

      L'interfaccia utente Web di Storm è disponibile nel cluster HDInsight:The Storm web UI is available on the HDInsight cluster:

      Ribilanciamento scala di HDInsight Storm

      Di seguito viene fornito un esempio d'uso del comando CLI per ribilanciare la topologia di Storm:Here is an example how to use the CLI command to rebalance the Storm topology:

      ## Reconfigure the topology "mytopology" to use 5 worker processes,
      ## the spout "blue-spout" to use 3 executors, and
      ## the bolt "yellow-bolt" to use 10 executors
      $ storm rebalance mytopology -n 5 -e blue-spout=3 -e yellow-bolt=10
      

Per modificare le dimensioni del cluster Hadoop mediante Azure PowerShell, eseguire il comando seguente da un computer client:To change the Hadoop cluster size by using Azure PowerShell, run the following command from a client machine:

Set-AzureRmHDInsightClusterSize -ClusterName <Cluster Name> -TargetInstanceCount <NewSize>

Concedere/Revocare l'accessoGrant/revoke access

Per i cluster HDInsight sono disponibili i servizi Web HTTP seguenti (tutti con endpoint RESTful):HDInsight clusters have the following HTTP web services (all of these services have RESTful endpoints):

  • ODBCODBC
  • JDBCJDBC
  • AmbariAmbari
  • OozieOozie
  • TempletonTempleton

Per impostazione predefinita, a questi servizi è concesso l'accesso.By default, these services are granted for access. L'accesso può essere revocato/concesso,You can revoke/grant the access. Per revocare:To revoke:

Revoke-AzureRmHDInsightHttpServicesAccess -ClusterName <Cluster Name>

Per concedere:To grant:

$clusterName = "<HDInsight Cluster Name>"

# Credential option 1
$hadoopUserName = "admin"
$hadoopUserPassword = "<Enter the Password>"
$hadoopUserPW = ConvertTo-SecureString -String $hadoopUserPassword -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential($hadoopUserName,$hadoopUserPW)

# Credential option 2
#$credential = Get-Credential -Message "Enter the HTTP username and password:" -UserName "admin"

Grant-AzureRmHDInsightHttpServicesAccess -ClusterName $clusterName -HttpCredential $credential

Nota

La concessione/revoca dell'accesso implica la reimpostazione del nome utente e della password del cluster.By granting/revoking the access, you reset the cluster user name and password.

La concessione e la revoca dell'accesso possono essere eseguite anche tramite il portale.Granting and revoking access can also be done via the portal. Vedere l'articolo su come amministrare HDInsight con il portale di Azure.See Administer HDInsight by using the Azure portal.

Aggiornare le credenziali utente HTTPUpdate HTTP user credentials

È la stessa procedura di Concessione/revoca dell'accesso HTTP.It is the same procedure as Grant/revoke HTTP access. Se al cluster è stato concesso l'accesso HTTP, è necessario innanzitutto revocarlo.If the cluster has been granted the HTTP access, you must first revoke it. E quindi concedere l'accesso con le nuove credenziali utente HTTP.And then grant the access with new HTTP user credentials.

Trovare l'account di archiviazione predefinitoFind the default storage account

Lo script di PowerShell seguente dimostra come ottenere il nome dell'account di archiviazione predefinito e le informazioni correlate:The following PowerShell script demonstrates how to get the default storage account name and the related information:

#Login-AzureRmAccount
$clusterName = "<HDInsight Cluster Name>"

$clusterInfo = Get-AzureRmHDInsightCluster -ClusterName $clusterName
$storageInfo = $clusterInfo.DefaultStorageAccount.split('.')
$defaultStoreageType = $storageInfo[1]
$defaultStorageName = $storageInfo[0]

echo "Default Storage account name: $defaultStorageName"
echo "Default Storage account type: $defaultStoreageType"

if ($defaultStoreageType -eq "blob")
{
    $defaultBlobContainerName = $cluster.DefaultStorageContainer
    $defaultStorageAccountKey = (Get-AzureRmStorageAccountKey -ResourceGroupName $resourceGroupName -Name $defaultStorageAccountName)[0].Value
    $defaultStorageAccountContext = New-AzureStorageContext -StorageAccountName $defaultStorageAccountName -StorageAccountKey $defaultStorageAccountKey

    echo "Default Blob container name: $defaultBlobContainerName"
    echo "Default Storage account key: $defaultStorageAccountKey"
}

Trovare il gruppo di risorseFind the resource group

Nella modalità Resource Manager ogni cluster HDInsight appartiene a un gruppo di risorse di Azure.In the Resource Manager mode, each HDInsight cluster belongs to an Azure resource group. Trovare il gruppo di risorse:To find the resource group:

$clusterName = "<HDInsight Cluster Name>"

$cluster = Get-AzureRmHDInsightCluster -ClusterName $clusterName
$resourceGroupName = $cluster.ResourceGroup

Inviare i processiSubmit jobs

Inviare processi MapReduceTo submit MapReduce jobs

Vedere esempi di MapReduce di Hadoop in HDInsight basato su Windows.See Run Hadoop MapReduce samples in Windows-based HDInsight.

Inviare processi HiveTo submit Hive jobs

Vedere Esecuzione di query Hive tramite PowerShellSee Run Hive queries using PowerShell.

Inviare processi PigTo submit Pig jobs

Vedere Eseguire processi Pig mediante PowerShell.See Run Pig jobs using PowerShell.

Inviare processi SqoopTo submit Sqoop jobs

Vedere Usare Sqoop con Hadoop in HDInsight.See Use Sqoop with HDInsight.

Inviare processi OozieTo submit Oozie jobs

Vedere Usare Oozie con Hadoop per definire ed eseguire un flusso di lavoro in HDInsight.See Use Oozie with Hadoop to define and run a workflow in HDInsight.

Caricare dati nell'archivio BLOB di AzureUpload data to Azure Blob storage

VedereCaricare dati in HDInsight.See Upload data to HDInsight.

Vedere ancheSee Also