Compartilhar via


Tutorial: Criar clusters do Apache Hadoop sob demanda no HDInsight usando o Azure Data Factory

Neste tutorial, você aprenderá a criar um cluster do Apache Hadoop , sob demanda, no Azure HDInsight usando o Azure Data Factory. Em seguida, você usa pipelines de dados no Azure Data Factory para executar trabalhos do Hive e excluir o cluster. No final deste tutorial, você aprenderá a operationalize um trabalho de Big Data executado em que a criação do cluster, a execução do trabalho e a exclusão de cluster são feitas de acordo com uma agenda.

Este tutorial aborda as seguintes tarefas:

  • Criar uma conta de armazenamento do Azure
  • Entender a atividade do Azure Data Factory
  • Criar um data factory usando o portal do Azure
  • Criar serviços vinculados
  • Criar um pipeline
  • Disparar um pipeline
  • Monitorar um pipeline
  • Verificar a saída

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

Pré-requisitos

  • O módulo Az do PowerShell foi instalado.

  • Um service principal do Microsoft Entra. Depois de criar a entidade de serviço, certifique-se de recuperar a ID do aplicativo e a chave de autenticação usando as instruções no artigo vinculado. Você precisará desses valores mais adiante neste tutorial. Além disso, verifique se a entidade de serviço é um membro da função de Colaborador da assinatura ou do grupo de recursos em que o cluster é criado. Para obter instruções para recuperar os valores necessários e atribuir as funções corretas, consulte Criar um principal de serviço do Microsoft Entra.

Criar objetos preliminares do Azure

Nesta seção, você criará vários objetos que serão usados para o cluster HDInsight criado sob demanda. A conta de armazenamento criada conterá o script hiveQL de exemplo, partitionweblogs.hqlque você usará para simular um trabalho de exemplo do Apache Hive executado no cluster.

Esta seção usa um script do Azure PowerShell para criar a conta de armazenamento e copiar os arquivos necessários na conta de armazenamento. O script de exemplo do Azure PowerShell nesta seção executa as seguintes tarefas:

  1. Entra no Azure.
  2. Cria um grupo de recursos do Azure.
  3. Cria uma conta de armazenamento do Azure.
  4. Cria um contêiner de Blob na conta de armazenamento
  5. Copia o script HiveQL de exemplo (partitionweblogs.hql) para o contêiner de Blob. O script de exemplo já está disponível em outro contêiner de Blob público. O script do PowerShell abaixo faz uma cópia desses arquivos na conta de Armazenamento do Azure que ele cria.

Criar conta de armazenamento e copiar arquivos

Importante

Especifique nomes para o grupo de recursos do Azure e a conta de armazenamento do Azure que será criada pelo script. Anote o nome do grupo de recursos, o nome da conta de armazenamento e a chave da conta de armazenamento gerada pelo script. Você precisa deles na próxima seção.

$resourceGroupName = "<Azure Resource Group Name>"
$storageAccountName = "<Azure Storage Account Name>"
$___location = "East US"

$sourceStorageAccountName = "hditutorialdata"  
$sourceContainerName = "adfv2hiveactivity"

$destStorageAccountName = $storageAccountName
$destContainerName = "adfgetstarted" # don't change this value.

####################################
# Connect to Azure
####################################
#region - Connect to Azure subscription
Write-Host "`nConnecting to your Azure subscription ..." -ForegroundColor Green
$sub = Get-AzSubscription -ErrorAction SilentlyContinue
if(-not($sub))
{
    Connect-AzAccount
}

# If you have multiple subscriptions, set the one to use
# Select-AzSubscription -SubscriptionId "<SUBSCRIPTIONID>"

#endregion

####################################
# Create a resource group, storage, and container
####################################

#region - create Azure resources
Write-Host "`nCreating resource group, storage account and blob container ..." -ForegroundColor Green

New-AzResourceGroup `
    -Name $resourceGroupName `
    -Location $___location

New-AzStorageAccount `
    -ResourceGroupName $resourceGroupName `
    -Name $destStorageAccountName `
    -Kind StorageV2 `
    -Location $___location `
    -SkuName Standard_LRS `
    -EnableHttpsTrafficOnly 1

$destStorageAccountKey = (Get-AzStorageAccountKey `
    -ResourceGroupName $resourceGroupName `
    -Name $destStorageAccountName)[0].Value

$sourceContext = New-AzStorageContext `
    -StorageAccountName $sourceStorageAccountName `
    -Anonymous

$destContext = New-AzStorageContext `
    -StorageAccountName $destStorageAccountName `
    -StorageAccountKey $destStorageAccountKey

New-AzStorageContainer `
    -Name $destContainerName `
    -Context $destContext
#endregion

####################################
# Copy files
####################################
#region - copy files
Write-Host "`nCopying files ..." -ForegroundColor Green

$blobs = Get-AzStorageBlob `
    -Context $sourceContext `
    -Container $sourceContainerName `
    -Blob "hivescripts\hivescript.hql"

$blobs|Start-AzStorageBlobCopy `
    -DestContext $destContext `
    -DestContainer $destContainerName `
    -DestBlob "hivescripts\partitionweblogs.hql"

Write-Host "`nCopied files ..." -ForegroundColor Green
Get-AzStorageBlob `
    -Context $destContext `
    -Container $destContainerName
#endregion

Write-host "`nYou will use the following values:" -ForegroundColor Green
write-host "`nResource group name: $resourceGroupName"
Write-host "Storage Account Name: $destStorageAccountName"
write-host "Storage Account Key: $destStorageAccountKey"

Write-host "`nScript completed" -ForegroundColor Green

Verificar a conta de armazenamento

  1. Entre no portal do Azure.
  2. À esquerda, navegue até Todos os serviços>Geral>Grupos de recursos.
  3. Selecione o nome do grupo de recursos que você criou no script do PowerShell. Use o filtro se você tiver muitos grupos de recursos listados.
  4. Na exibição Visão geral , você verá um recurso listado, a menos que compartilhe o grupo de recursos com outros projetos. Esse recurso é a conta de armazenamento com o nome especificado anteriormente. Selecione o nome da conta de armazenamento.
  5. Selecione o bloco Contêineres .
  6. Selecione o contêiner adfgetstarted . Você vê uma pasta chamada hivescripts.
  7. Abra a pasta e verifique se ela contém o arquivo de script de exemplo, partitionweblogs.hql.

Entender a atividade do Azure Data Factory

O Azure Data Factory orquestra e automatiza a movimentação e a transformação de dados. O Azure Data Factory pode criar um cluster Hadoop HDInsight just-in-time para processar uma fatia de dados de entrada e excluir o cluster quando o processamento for concluído.

No Azure Data Factory, uma fábrica de dados pode ter um ou mais pipelines de dados. Um pipeline de dados tem uma ou mais atividades. Há dois tipos de atividades:

  • Atividades de movimentação de dados. Você usa atividades de movimentação de dados para mover dados de um armazenamento de dados de origem para um armazenamento de dados de destino.
  • Atividades de transformação de dados. Você usa atividades de transformação de dados para transformar/processar dados. A Atividade de Hive do HDInsight é uma das atividades de transformação com suporte do Data Factory. Você pode usar a atividade de transformação do Hive neste tutorial.

Neste artigo, você configura a atividade do Hive para criar um cluster Hadoop HDInsight sob demanda. Quando a atividade é executada para processar dados, aqui está o que acontece:

  1. Um cluster Hadoop do HDInsight é criado automaticamente no momento necessário para que você processe a fatia de dados.

  2. Os dados de entrada são processados executando um script HiveQL no cluster. Neste tutorial, o script HiveQL associado à atividade hive realiza as seguintes ações:

    • Usa a tabela existente (hivesampletable) para criar outra tabela HiveSampleOut.
    • Popula a tabela HiveSampleOut com apenas colunas específicas do hivesampletable original.
  3. O cluster Hadoop do HDInsight é excluído após a conclusão do processamento e o cluster fica ocioso pela quantidade de tempo configurada (configuração timeToLive). Se a próxima fatia de dados estiver disponível para processamento dentro desse tempo ocioso determinado por timeToLive, o mesmo cluster será usado para processar a fatia.

Criar uma fábrica de dados

  1. Entre no portal do Azure.

  2. No menu à esquerda, navegue até + Create a resource>o Analytics>Data Factory.

    Azure Data Factory no portal.

  3. Insira ou selecione os seguintes valores para o bloco Nova fábrica de dados:

    Propriedade Value
    Nome Insira um nome para a fábrica de dados. Esse nome deve ser globalmente exclusivo.
    Versão Deixe na V2.
    Subscription Selecione sua assinatura do Azure.
    Grupo de recursos Selecione o grupo de recursos que você criou usando o script do PowerShell.
    Localização O local é automaticamente definido como o local especificado durante a criação do grupo de recursos anteriormente. Para este tutorial, o local é definido como Leste dos EUA.
    Habilitar o GIT Desmarque essa caixa.

    Crie o Azure Data Factory usando o portal do Azure.

  4. Selecione Criar. A criação de um data factory pode levar entre 2 e 4 minutos.

  5. Depois que o Data Factory for criado, você receberá uma notificação de implantação bem-sucedida com um botão Ir para o recurso. Selecione Ir para o recurso para abrir o modo de exibição padrão do Data Factory.

  6. Selecione Autor &Monitor para iniciar o portal de criação e monitoramento do Azure Data Factory.

    Visão geral do portal do Azure Data Factory.

Criar serviços vinculados

Nesta seção, você criará dois serviços vinculados em seu data factory.

  • Um serviço vinculado do Armazenamento do Azure que vincula uma conta de Armazenamento do Azure ao data factory. Esse armazenamento é usado pelo cluster HDInsight sob demanda. Ele também contém o script hive que é executado no cluster.
  • Um serviço vinculado do HDInsight sob demanda. O Azure Data Factory cria automaticamente um cluster HDInsight e executa o script hive. Em seguida, ele exclui o cluster HDInsight após o cluster ficar ocioso por um tempo pré-configurado.

Criar um serviço vinculado do Armazenamento do Azure

  1. No painel esquerdo da página Vamos começar , selecione o ícone Autor .

    Crie um serviço vinculado do Azure Data Factory.

  2. Selecione Conexões no canto inferior esquerdo da janela e selecione +Novo.

    Criar conexões no Azure Data Factory.

  3. Na caixa de diálogo Novo Serviço Vinculado , selecione Armazenamento de Blobs do Azure e selecione Continuar.

    Crie um serviço vinculado de Armazenamento do Azure para Data Factory.

  4. Forneça os seguintes valores para o serviço vinculado de armazenamento:

    Propriedade Value
    Nome Digite HDIStorageLinkedService.
    Assinatura do Azure Selecione sua assinatura na lista suspensa.
    Nome da conta de armazenamento Selecione a conta de Armazenamento do Azure que você criou como parte do script do PowerShell.

    Selecione Testar conexão e, se tiver êxito, selecione Criar.

    Forneça um nome para o serviço associado do Armazenamento do Azure.

Criar um serviço vinculado do HDInsight sob demanda

  1. Selecione o botão + Novo novamente para criar outro serviço vinculado.

  2. Na janela Novo Serviço Vinculado , selecione a guia Computação .

  3. Selecione Azure HDInsight e selecione Continuar.

    Crie um serviço vinculado do HDInsight para o Azure Data Factory.

  4. Na janela Novo Serviço Vinculado , insira os seguintes valores e deixe o restante como padrão:

    Propriedade Value
    Nome Digite HDInsightLinkedService.
    Tipo Selecione HDInsight sob demanda.
    Serviço de Armazenamento Vinculado do Azure Selecione HDIStorageLinkedService.
    Tipo de cluster Selecionar hadoop
    Vida útil Forneça a duração para a qual você deseja que o cluster HDInsight esteja disponível antes de ser excluído automaticamente.
    ID da entidade de serviço Forneça a ID do aplicativo da entidade de serviço do Microsoft Entra que você criou como parte dos pré-requisitos.
    Chave da entidade de serviço Forneça a chave de autenticação para a entidade de serviço do Microsoft Entra.
    Prefixo de nome do cluster Forneça um valor que será prefixado para todos os tipos de cluster criados pelo data factory.
    Subscription Selecione sua assinatura na lista suspensa.
    Escolha o grupo de recursos Selecione o grupo de recursos que você criou como parte do script do PowerShell usado anteriormente.
    Tipo de SO/nome de usuário do cluster SSH Insira um nome de usuário SSH, normalmente sshuser.
    Tipo de sistema operacional/senha SSH do cluster Fornecer uma senha para o usuário SSH
    Tipo de sistema operacional/nome de usuário do cluster Insira um nome de usuário do cluster, normalmente admin.
    Tipo de sistema operacional/senha de cluster Forneça uma senha para o usuário do cluster.

    Em seguida, selecione Criar.

    Forneça valores para o serviço vinculado do HDInsight.

Criar um pipeline

  1. Selecione o + botão (mais) e, em seguida, selecione Pipeline.

    Crie um pipeline no Azure Data Factory.

  2. Na caixa de ferramentas Atividades, expanda HDInsighte arraste a atividade Hive para a superfície do designer de pipeline. Na guia Geral, forneça um nome para a atividade.

    Adicionar atividades ao pipeline do Data Factory.

  3. Com a atividade do Hive selecionada, selecione a guia Cluster HDI. E, na lista suspensa Serviço vinculado HDInsight, selecione o serviço vinculado criado anteriormente, HDInsightLinkedService, para o HDInsight.

    Forneça detalhes do cluster HDInsight para o pipeline.

  4. Selecione a guia Script e conclua as seguintes etapas:

    1. Para Serviço vinculado de script, selecione HDIStorageLinkedService na lista suspensa. Esse valor é o serviço de armazenamento vinculado que você criou anteriormente.

    2. Para Caminho do arquivo, selecione Procurar armazenamento e navegue até o local onde o script de Hive de exemplo está disponível. Se você executou o script do PowerShell anteriormente, esse local deverá ser adfgetstarted/hivescripts/partitionweblogs.hql.

      Forneça detalhes do script Hive para o pipeline.

    3. EmParâmetros Avançados>, selecione Auto-fill from script. Essa opção procura todos os parâmetros no script do Hive que exijam valores em runtime.

    4. Na caixa de texto Valor, adicione a pasta existente no formato wasbs://adfgetstarted@<StorageAccount>.blob.core.windows.net/outputfolder/. O caminho diferencia maiúsculas de minúsculas. Esse caminho é onde a saída do script será armazenada. O wasbs esquema é necessário porque as contas de armazenamento agora têm a transferência segura necessária habilitada por padrão.

      Forneça parâmetros para o script do Hive.

  5. Selecione Validar para validar o pipeline. Selecione o botão >> (seta para a direita) para fechar a janela de validação.

    Valide o pipeline do Azure Data Factory.

  6. Por fim, selecione Publicar Tudo para publicar os artefatos no Azure Data Factory.

    Publique o pipeline do Azure Data Factory.

Disparar um pipeline

  1. Na barra de ferramentas na superfície de design, selecione Adicionar gatilho>Disparar agora.

    Acione o pipeline do Azure Data Factory.

  2. Selecione OK na barra lateral pop-up.

Monitorar um pipeline

  1. Alterne para a guia Monitorar à esquerda. Você vê uma execução de pipeline na lista Execuções de Pipeline. Observe o status da execução na coluna Status .

    Monitore o pipeline do Azure Data Factory.

  2. Selecione Atualizar para atualizar o status.

  3. Você também pode selecionar o ícone Exibir Execuções de Atividade para ver a execução da atividade associada ao pipeline. Na captura de tela abaixo, você verá apenas a execução de uma atividade, pois há apenas uma atividade no pipeline que você criou. Para alternar de volta para o modo de exibição anterior, selecione Pipelines na parte superior da página.

    Monitore a atividade de pipeline do Azure Data Factory.

Verificar a saída

  1. Para verificar a saída, no portal do Azure, navegue até a conta de armazenamento que você usou para este tutorial. Você deverá ver as seguintes pastas ou contêineres:

    • Você verá uma pasta adfgerstarted/outputfolder que contém a saída do script Hive que foi executado como parte do pipeline.

    • Você verá um contêiner adfhdidatafactory-<linked-service-name>-<timestamp>. Esse contêiner é o local de armazenamento padrão do cluster HDInsight que foi criado como parte da execução do pipeline.

    • Você verá um contêiner adfjobs que possui logs de trabalho do Azure Data Factory.

      Verifique a saída do pipeline do Azure Data Factory.

Limpar os recursos

Com a criação do cluster HDInsight sob demanda, você não precisa excluir explicitamente o cluster HDInsight. O cluster é excluído com base na configuração fornecida durante a criação do pipeline. Mesmo depois que o cluster é excluído, as contas de armazenamento associadas ao cluster continuam a existir. Esse comportamento é feito por design para que você possa manter seus dados intactos. No entanto, se você não quiser persistir os dados, poderá excluir a conta de armazenamento criada.

Ou você pode excluir todo o grupo de recursos criado para este tutorial. Esse processo exclui a conta de armazenamento e o Azure Data Factory que você criou.

Exclua o grupo de recursos

  1. Entre no portal do Azure.

  2. Selecione grupos de recursos no painel esquerdo.

  3. Selecione o nome do grupo de recursos que você criou no script do PowerShell. Use o filtro se você tiver muitos grupos de recursos listados. Ele abre o grupo de recursos.

  4. No bloco Recursos , você terá a conta de armazenamento padrão e o data factory listados, a menos que você compartilhe o grupo de recursos com outros projetos.

  5. Selecione Excluir grupo de recursos. Isso exclui a conta de armazenamento e os dados armazenados na conta de armazenamento.

    Excluir grupo de recursos do portal do Azure.

  6. Insira o nome do grupo de recursos para confirmar a exclusão e selecione Excluir.

Próximas etapas

Neste artigo, você aprendeu a usar o Azure Data Factory para criar cluster HDInsight sob demanda e executar trabalhos do Apache Hive. Avance para o próximo artigo para saber como criar clusters HDInsight com configuração personalizada.