Criar clusters baseados em Linux no HDInsight com Azure PowerShell

Azure PowerShell é um ambiente de scripting poderoso que pode utilizar para controlar e automatizar a implementação e gestão das suas cargas de trabalho no Microsoft Azure. Este documento fornece informações sobre como criar um cluster do HDInsight baseado em Linux com Azure PowerShell. Também inclui um script de exemplo.

Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

Pré-requisitos

Nota

Recomendamos que utilize o módulo do Azure Az PowerShell para interagir com o Azure. Veja Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

Azure PowerShell módulo do Az.

Criar cluster

Aviso

A faturação para clusters do HDInsight é proporcional por minuto, quer os utilize ou não. Certifique-se de que elimina o cluster depois de o utilizar. Veja como eliminar um cluster do HDInsight.

Para criar um cluster do HDInsight com Azure PowerShell, tem de concluir os seguintes procedimentos:

  • Criar um grupo de recursos do Azure
  • Criar uma conta de Armazenamento do Azure
  • Criar um contentor de Blobs do Azure
  • Criar um cluster do HDInsight

Nota

A utilização do PowerShell para criar um cluster do HDInsight com Azure Data Lake Storage Gen2 não é atualmente suportada.

O script seguinte demonstra como criar um novo cluster:

# Login to your Azure subscription
$context = Get-AzContext
if ($context -eq $null) 
{
    Connect-AzAccount
}
$context

# If you have multiple subscriptions, set the one to use
# $subscriptionID = "<subscription ID to use>"
# Select-AzSubscription -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-AzResourceGroup -Name $resourceGroupName -Location $location

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

# Create an Az.Storage account and container
New-AzStorageAccount `
    -ResourceGroupName $resourceGroupName `
    -Name $defaultStorageAccountName `
    -Type Standard_LRS `
    -Location $location
$defaultStorageAccountKey = (Get-AzStorageAccountKey `
                                -ResourceGroupName $resourceGroupName `
                                -Name $defaultStorageAccountName)[0].Value

$storageAccountResourceId = (Get-AzStorageAccount -ResourceGroupName $resourceGroupName -AccountName $defaultStorageAccountName).Id  

$defaultStorageContext = New-AzStorageContext `
                                -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
$sshCredentials = Get-Credential -Message "Enter SSH user credentials" -UserName "sshuser"

# Default cluster size (# of worker nodes), version, type, and OS
$clusterSizeInNodes = "4"
$clusterVersion = "5.1"
$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-AzStorageContainer `
    -Name $clusterName -Context $defaultStorageContext 

# Create the HDInsight cluster
    New-AzHDInsightCluster `
    -ResourceGroupName $resourceGroupName `
    -ClusterName $clusterName `
    -Location $location `
    -ClusterSizeInNodes $clusterSizeInNodes `
    -ClusterType $clusterType `
    -OSType $clusterOS `
    -Version $clusterVersion `
    -HttpCredential $httpCredential `
    -StorageAccountResourceId $storageAccountResourceId `
    -StorageAccountKey $defaultStorageAccountKey `
    -StorageContainer $defaultBlobContainerName `
    -SshCredential $sshCredentials

Os valores que especificar para o início de sessão do cluster são utilizados para criar a conta de utilizador do Hadoop para o cluster. Utilize esta conta para ligar a serviços alojados no cluster, como UIs Web ou APIs REST.

Os valores que especificar para o utilizador SSH são utilizados para criar o utilizador SSH para o cluster. Utilize esta conta para iniciar uma sessão SSH remota no cluster e executar tarefas. Para obter mais informações, veja o documento Utilizar SSH com o HDInsight.

Importante

Se planeia utilizar mais de 32 nós de trabalho (na criação do cluster ou ao dimensionar o cluster após a criação), também tem de especificar um tamanho de nó principal com, pelo menos, 8 núcleos e 14 GB de RAM.

Para obter mais informações sobre tamanhos de nós e custos associados, veja os preços do HDInsight.

Pode demorar até 20 minutos a criar um cluster.

Criar cluster: objeto de configuração

Também pode criar um objeto de configuração do HDInsight com New-AzHDInsightClusterConfig o cmdlet. Em seguida, pode modificar este objeto de configuração para ativar opções de configuração adicionais para o cluster. Por fim, utilize o -Config parâmetro do New-AzHDInsightCluster cmdlet para utilizar a configuração.

Personalizar clusters

Eliminar o cluster

Aviso

A faturação para clusters do HDInsight é proporcional por minuto, quer os utilize ou não. Certifique-se de que elimina o cluster depois de o utilizar. Veja como eliminar um cluster do HDInsight.

Resolução de problemas

Caso se depare com problemas com a criação de clusters do HDInsight, veja aceder aos requisitos de controlo.

Passos seguintes

Agora que criou com êxito um cluster do HDInsight, utilize os seguintes recursos para saber como trabalhar com o cluster.

Clusters do Apache Hadoop

Clusters do Apache HBase

Clusters do Apache Spark