Criar clusters HDInsight utilizando o Azure CLI

Os passos neste documento walk-through criando um cluster HDInsight 3.6 usando o Azure CLI.

Aviso

A faturação dos clusters HDInsight é prostimada por minuto, quer os utilize ou não. Certifique-se de que apaga o seu cluster depois de terminar de o utilizar. Veja como eliminar um cluster HDInsight.

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

Pré-requisitos

Você pode usar o Azure Cloud Shell ou um Azure CLI local.

Criar um cluster

  1. Faça login na sua assinatura Azure. Se pretender utilizar o Azure Cloud Shell, então selecione Experimente-o no canto superior direito do bloco de código. Caso contrário, insira o comando abaixo:

    az login
    
    # If you have multiple subscriptions, set the one to use
    # az account set --subscription "SUBSCRIPTIONID"
    
  2. Definir variáveis ambientais. O uso de variáveis neste artigo baseia-se em Bash. Serão necessárias ligeiras variações para outros ambientes. Consulte a az-hdinsight-create para obter uma lista completa de possíveis parâmetros para a criação de clusters.

    Parâmetro Description
    --workernode-count O número de nós operários no aglomerado. Este artigo utiliza a variável clusterSizeInNodes à medida que o valor passado para --workernode-count.
    --version A versão do cluster HDInsight. Este artigo utiliza a variável clusterVersion à medida que o valor passado para --version. Ver também: Versões HDInsight suportadas.
    --type Tipo de cluster HDInsight, como: hadoop, interactivehive, hbase, kafka, spark, rserver, mlservices. Este artigo utiliza a variável clusterType à medida que o valor passado para --type. Ver também: Tipos de cluster e configuração.
    --component-version As versões de vários componentes Hadoop, em versões separadas pelo espaço em formato 'component=version'. Este artigo utiliza a variável componentVersion à medida que o valor passado para --component-version. Ver também: Componentes Hadoop.

    Substitua RESOURCEGROUPNAME, LOCATION, CLUSTERNAME, , STORAGEACCOUNTNAMEe PASSWORD pelos valores desejados. Alterar valores para as outras variáveis conforme desejado. Em seguida, insira os comandos da CLI.

    export resourceGroupName=RESOURCEGROUPNAME
    export location=LOCATION
    export clusterName=CLUSTERNAME
    export AZURE_STORAGE_ACCOUNT=STORAGEACCOUNTNAME
    export httpCredential='PASSWORD'
    export sshCredentials='PASSWORD'
    
    export AZURE_STORAGE_CONTAINER=$clusterName
    export clusterSizeInNodes=1
    export clusterVersion=3.6
    export clusterType=hadoop
    export componentVersion=Hadoop=2.7
    
  3. Crie o grupo de recursos introduzindo o comando abaixo:

    az group create \
        --location $location \
        --name $resourceGroupName
    

    Para uma lista de locais válidos, use o az account list-locations comando e, em seguida, use uma das localizações a partir do name valor.

  4. Criar uma conta de Armazenamento Azure introduzindo o comando abaixo:

    # Note: kind BlobStorage is not available as the default storage account.
    az storage account create \
        --name $AZURE_STORAGE_ACCOUNT \
        --resource-group $resourceGroupName \
        --https-only true \
        --kind StorageV2 \
        --location $location \
        --sku Standard_LRS
    
  5. Extrair a chave primária da conta de Armazenamento Azure e armazená-la numa variável introduzindo o comando abaixo:

    export AZURE_STORAGE_KEY=$(az storage account keys list \
        --account-name $AZURE_STORAGE_ACCOUNT \
        --resource-group $resourceGroupName \
        --query [0].value -o tsv)
    
  6. Crie um recipiente de armazenamento Azure introduzindo o comando abaixo:

    az storage container create \
        --name $AZURE_STORAGE_CONTAINER \
        --account-key $AZURE_STORAGE_KEY \
        --account-name $AZURE_STORAGE_ACCOUNT
    
  7. Crie o cluster HDInsight introduzindo o seguinte comando:

    az hdinsight create \
        --name $clusterName \
        --resource-group $resourceGroupName \
        --type $clusterType \
        --component-version $componentVersion \
        --http-password $httpCredential \
        --http-user admin \
        --location $location \
        --workernode-count $clusterSizeInNodes \
        --ssh-password $sshCredentials \
        --ssh-user sshuser \
        --storage-account $AZURE_STORAGE_ACCOUNT \
        --storage-account-key $AZURE_STORAGE_KEY \
        --storage-container $AZURE_STORAGE_CONTAINER \
        --version $clusterVersion
    

    Importante

    Os clusters HDInsight vêm em vários tipos, que correspondem à carga de trabalho ou tecnologia para a qual o cluster está sintonizado. Não existe um método suportado para criar um cluster que combine vários tipos, como a HBase num cluster.

    Pode levar vários minutos para o processo de criação do cluster estar concluído. Normalmente por volta das 15.

Limpar os recursos

Depois de concluir o artigo, pode achar conveniente eliminar o cluster. Com o HDInsight, os seus dados são armazenados no Azure Storage, para que possa eliminar com segurança um cluster quando este não estiver a ser utilizado. Também é cobrado por um cluster HDInsight, mesmo quando não está a ser utilizado. Uma vez que as taxas para o cluster são muitas vezes mais do que os encargos para o armazenamento, faz sentido económico apagar aglomerados quando não estão a ser utilizados.

Insira todos ou alguns dos seguintes comandos para remover recursos:

# Remove cluster
az hdinsight delete \
    --name $clusterName \
    --resource-group $resourceGroupName

# Remove storage container
az storage container delete \
    --account-name $AZURE_STORAGE_ACCOUNT \
    --name $AZURE_STORAGE_CONTAINER

# Remove storage account
az storage account delete \
    --name $AZURE_STORAGE_ACCOUNT \
    --resource-group $resourceGroupName

# Remove resource group
az group delete \
    --name $resourceGroupName

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 sucesso um cluster HDInsight utilizando o Azure CLI, use o seguinte para aprender a trabalhar com o seu cluster:

Aglomerados apache Hadoop

Aglomerados Apache HBase