Criar os clusters do HDInsight usando a CLI do Azure

As etapas deste documento são um passo a passo para a criação de um cluster do HDInsight 4.0 usando a CLI do Azure.

Aviso

A cobrança de clusters HDInsight é proporcional por minuto, independentemente de você utilizá-los ou não. Certifique-se de excluir o cluster após utilizá-lo. Consulte como excluir um cluster HDInsight.

Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.

Pré-requisitos

Criar um cluster

  1. Acesse a sua assinatura do Azure. Se você pretende usar o Azure Cloud Shell, selecione Experimentar no canto superior direito do bloco de código. Caso contrário, insira o seguinte comando:

    az login
    
    # If you have multiple subscriptions, set the one to use
    # az account set --subscription "SUBSCRIPTIONID"
    
  2. Configure as variáveis de ambiente. O uso de variáveis neste artigo baseia-se em Bash. Pequenas variações são necessárias para outros ambientes. Consulte az-hdinsight-create para ver uma lista completa dos possíveis parâmetros para a criação do cluster.

    Parâmetro Descrição
    --workernode-count O número de nós de trabalho no cluster. Este artigo usa a variável clusterSizeInNodes como o valor passado para --workernode-count.
    --version a versão do cluster do HDInsight. Este artigo usa a variável clusterVersion como o valor passado para --version. Consulte também: Versões do HDInsight com suporte.
    --type Tipo de cluster do HDInsight, como: hadoop, hive interativo, hbase, kafka, spark, rserver, mlservices. Este artigo usa a variável clusterType como o valor passado para --type. Consulte também: Tipos de cluster e configuração.
    --component-version As versões de vários componentes do Hadoop, em versões separadas por espaço no formato 'component=version'. Este artigo usa a variável componentVersion como o valor passado para --component-version. Consulte também: Componentes do Hadoop.

    Substitua RESOURCEGROUPNAME, LOCATION, CLUSTERNAME, STORAGEACCOUNTNAME e PASSWORD pelos valores desejados. Altere os 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=4.0
    export clusterType=hadoop
    export componentVersion=Hadoop=3.1
    
  3. Crie o grupo de recursos inserindo o seguinte comando:

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

    Para obter uma lista de locais válidos, use o comando az account list-locations e, em seguida, utilize um dos locais do valor name.

  4. Crie uma conta de Armazenamento do Azure inserindo o seguinte comando:

    # 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. Extraia a chave primária da conta de Armazenamento do Azure e armazene-a em uma variável inserindo o seguinte comando:

    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 contêiner de Armazenamento do Azure inserindo o seguinte comando:

    az storage container create \
        --name $AZURE_STORAGE_CONTAINER \
        --account-key $AZURE_STORAGE_KEY \
        --account-name $AZURE_STORAGE_ACCOUNT
    
  7. Crie o cluster do HDInsight, digitando o comando a seguir:

    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

    Clusters HDInsight são fornecidos em uma variedade de tipos que correspondem à carga de trabalho ou à tecnologia para a qual o cluster está ajustado. Não há nenhum método com suporte para criar um cluster que combina vários tipos, como HBase, em um cluster.

    Pode levar vários minutos para que o processo de criação de cluster seja concluído. Geralmente, cerca de 15 minutos.

Limpar recursos

Após a conclusão do artigo, convém excluir o cluster. Com o HDInsight, seus dados são armazenados no Armazenamento do Azure, assim você poderá excluir, com segurança, um cluster quando ele não estiver em uso. Você também é cobrado por um cluster HDInsight, mesmo quando ele não está em uso. Como os encargos para o cluster são muitas vezes maiores do que os encargos para armazenamento, faz sentido, do ponto de vista econômico, excluir os clusters quando não estiverem em uso.

Insira todos ou alguns dos comandos a seguir 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

Solucionar problemas

Se você tiver problemas com a criação de clusters HDInsight, confira os requisitos de controle de acesso.

Próximas etapas

Agora que você criou com êxito um cluster do HDInsight usando a CLI do Azure, use o seguinte para aprender a trabalhar com o seu cluster:

Clusters do Apache Hadoop

Clusters do Apache HBase