Självstudie: Skapa Apache Hadoop-kluster på begäran i HDInsight med Azure Data Factory

I den här självstudien får du lära dig hur du skapar ett Apache Hadoop-kluster , på begäran, i Azure HDInsight med hjälp av Azure Data Factory. Sedan använder du datapipelines i Azure Data Factory för att köra Hive-jobb och ta bort klustret. I slutet av den här självstudien får du lära dig hur operationalize du kör ett stordatajobb där klusterskapande, jobbkörning och klusterborttagning utförs enligt ett schema.

Den här självstudien omfattar följande uppgifter:

  • Skapa ett Azure Storage-konto
  • Förstå Azure Data Factory-aktivitet
  • Skapa en datafabrik med Hjälp av Azure-portalen
  • Skapa länkade tjänster
  • Skapa en pipeline
  • Utlösa en pipeline
  • Övervaka en pipeline
  • Verifiera utdata

Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.

Förutsättningar

  • PowerShell Az-modulen har installerats.

  • Ett huvudnamn för Microsoft Entra-tjänsten. När du har skapat tjänstens huvudnamn måste du hämta program-ID :t och autentiseringsnyckeln med hjälp av anvisningarna i den länkade artikeln. Du behöver dessa värden senare i den här självstudien. Kontrollera också att tjänstens huvudnamn är medlem i rollen Deltagare för prenumerationen eller resursgruppen där klustret skapas. Anvisningar om hur du hämtar nödvändiga värden och tilldelar rätt roller finns i Skapa ett Microsoft Entra-tjänsthuvudnamn.

Skapa preliminära Azure-objekt

I det här avsnittet skapar du olika objekt som ska användas för det HDInsight-kluster som du skapar på begäran. Det skapade lagringskontot innehåller hiveQL-exempelskriptet, partitionweblogs.hql, som du använder för att simulera ett Apache Hive-exempeljobb som körs i klustret.

Det här avsnittet använder ett Azure PowerShell-skript för att skapa lagringskontot och kopiera över de filer som krävs i lagringskontot. Azure PowerShell-exempelskriptet i det här avsnittet utför följande uppgifter:

  1. Loggar in på Azure.
  2. Skapar en Azure-resursgrupp.
  3. Konfigurerar ett Azure Storage-konto.
  4. Skapar en blobcontainer i lagringskontot
  5. Kopierar HiveQL-exempelskriptet (partitionweblogs.hql) blobcontainern. Exempelskriptet är redan tillgängligt i en annan offentlig blobcontainer. PowerShell-skriptet nedan gör en kopia av dessa filer till det Azure Storage-konto som skapas.

Skapa lagringskonto och kopiera filer

Viktigt!

Ange namn för Azure-resursgruppen och azure-lagringskontot som skapas av skriptet. Skriv ned resursgruppsnamn, lagringskontonamn och lagringskontonyckel som matas ut av skriptet. Du behöver dem i nästa avsnitt.

$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

Verifiera lagringskonto

  1. Logga in på Azure Portal.
  2. Från vänster går du till Alla tjänster>Allmänna>resursgrupper.
  3. Välj det resursgruppsnamn som du skapade i PowerShell-skriptet. Använd filtret om du har för många resursgrupper i listan.
  4. I översiktsvyn visas en resurs i listan om du inte delar resursgruppen med andra projekt. Den resursen är lagringskontot med det namn som du angav tidigare. Välj namnet på lagringskontot.
  5. Välj panelen Containrar .
  6. Välj containern adfgetstarted . Du ser en mapp med namnet hivescripts.
  7. Öppna mappen och se till att den innehåller exempelskriptfilen partitionweblogs.hql.

Förstå Azure Data Factory-aktiviteten

Azure Data Factory samordnar och automatiserar förflyttning och omvandling av data. Azure Data Factory kan skapa ett HDInsight Hadoop-kluster just-in-time för att bearbeta en indatasektor och ta bort klustret när bearbetningen är klar.

I Azure Data Factory kan en datafabrik ha en eller flera datapipelines. En datapipeline har en eller flera aktiviteter. Det finns två typer av aktiviteter:

  • Dataförflyttningsaktiviteter. Du använder dataförflyttningsaktiviteter för att flytta data från ett källdatalager till ett måldatalager.
  • Datatransformeringsaktiviteter. Du använder datatransformeringsaktiviteter för att transformera/bearbeta data. HDInsight Hive Activity är en av de transformeringsaktiviteter som stöds av Data Factory. Du använder Hive-transformeringsaktiviteten i den här självstudien.

I den här artikeln konfigurerar du Hive-aktiviteten för att skapa ett HDInsight Hadoop-kluster på begäran. När aktiviteten körs för att bearbeta data händer följande:

  1. Ett HDInsight Hadoop-kluster skapas automatiskt så att du kan bearbeta sektorn just-in-time.

  2. Indata bearbetas genom att ett HiveQL-skript körs i klustret. I den här självstudien utför HiveQL-skriptet som är associerat med hive-aktiviteten följande åtgärder:

    • Använder den befintliga tabellen (hivesampletable) för att skapa en annan tabell HiveSampleOut.
    • Fyller i HiveSampleOut-tabellen med endast specifika kolumner från den ursprungliga hivesampletable.
  3. HDInsight Hadoop-klustret tas bort när bearbetningen är klar och klustret är inaktivt under den konfigurerade tiden (inställningen timeToLive). Om nästa datasektor är tillgänglig för bearbetning med inaktivitetstid för timeToLive används samma kluster för att bearbeta sektorn.

Skapa en datafabrik

  1. Logga in på Azure-portalen.

  2. Gå till + Create a resource>Analytics>Data Factory på den vänstra menyn.

    Azure Data Factory on the portal.

  3. Ange eller välj följande värden för panelen Ny datafabrik :

    Property Värde
    Name Ange ett namn för datafabriken. Det här namnet måste vara globalt unikt.
    Version Lämna på V2.
    Prenumeration Välj din Azure-prenumerationen.
    Resursgrupp Välj den resursgrupp som du skapade med hjälp av PowerShell-skriptet.
    Plats Platsen anges automatiskt till den plats som du angav när du skapade resursgruppen tidigare. För den här självstudien är platsen inställd på USA, östra.
    Aktivera GIT Avmarkera den här rutan.

    Create Azure Data Factory using Azure portal.

  4. Välj Skapa. Det kan ta mellan 2 och 4 minuter att skapa en datafabrik.

  5. När datafabriken har skapats får du ett meddelande om att distributionen lyckades med knappen Gå till resurs . Välj Gå till resurs för att öppna standardvyn Data Factory.

  6. Välj Författare och övervaka för att starta Azure Data Factory-redigerings- och övervakningsportalen.

    Azure Data Factory portal overview.

Skapa länkade tjänster

I det här avsnittet skapar du två länkade tjänster i datafabriken.

  • En länkad Azure Storage-tjänst som länkar ditt Azure Storage-konto till datafabriken. Den här lagringen används av HDInsight-kluster på begäran. Den innehåller också Hive-skriptet som körs i klustret.
  • En länkad HDInsight-tjänst på begäran. Azure Data Factory skapar automatiskt ett HDInsight-kluster och kör Hive-skriptet. HDInsight-klustret tas bort när det har varit inaktivt under en förinställd tid.

Skapa en länkad Azure Storage-tjänst

  1. I den vänstra rutan på sidan Kom igång väljer du ikonen Författare .

    Create an Azure Data Factory linked service.

  2. Välj Anslut joner i fönstrets nedre vänstra hörn och välj sedan +Nytt.

    Create connections in Azure Data Factory.

  3. I dialogrutan Ny länkad tjänst väljer du Azure Blob Storage och sedan Fortsätt.

    Create Azure Storage linked service for Data Factory.

  4. Ange följande värden för den länkade lagringstjänsten:

    Property Värde
    Name Ange HDIStorageLinkedService.
    Azure-prenumeration Välj din prenumeration i listrutan.
    Lagringskontonamn Välj det Azure Storage-konto som du skapade som en del av PowerShell-skriptet.

    Välj Testa anslutning och om det lyckas väljer du Skapa.

    Provide name for Azure Storage linked service.

Skapa en på begäran länkad HDInsight-tjänst

  1. Välj knappen +Ny igen för att skapa ytterligare en länkad tjänst.

  2. I fönstret Ny länkad tjänst väljer du fliken Beräkning .

  3. Välj Azure HDInsight och välj sedan Fortsätt.

    Create HDInsight linked service for Azure Data Factory.

  4. I fönstret Ny länkad tjänst anger du följande värden och lämnar resten som standard:

    Property Värde
    Name Ange HDInsightLinkedService.
    Typ Välj HDInsight på begäran.
    Länkad Azure Storage-tjänst Välj HDIStorageLinkedService.
    Klustertyp Välj hadoop
    Time to live Ange hur länge du vill att HDInsight-klustret ska vara tillgängligt innan det tas bort automatiskt.
    Tjänstens huvudnamn-ID Ange program-ID för Microsoft Entra-tjänstens huvudnamn som du skapade som en del av förutsättningarna.
    Nyckel för tjänstens huvudnamn Ange autentiseringsnyckeln för Microsoft Entra-tjänstens huvudnamn.
    Klusternamnprefix Ange ett värde som ska prefixas för alla klustertyper som skapas av datafabriken.
    Prenumeration Välj din prenumeration i listrutan.
    Välj resursgrupp Välj den resursgrupp som du skapade som en del av PowerShell-skriptet som du använde tidigare.
    Operativsystemtyp/SSH-klusteranvändarnamn Ange ett SSH-användarnamn, vanligtvis sshuser.
    Operativsystemtyp/SSH-klusterlösenord Ange ett lösenord för SSH-användaren
    Operativsystemtyp/Klusteranvändarnamn Ange ett klusteranvändarnamn, vanligtvis admin.
    Operativsystemtyp/klusterlösenord Ange ett lösenord för klusteranvändaren.

    Välj sedan Skapa.

    Provide values for HDInsight linked service.

Skapa en pipeline

  1. Välj knappen + (plus) och välj sedan Pipeline.

    Create a pipeline in Azure Data Factory.

  2. I verktygslådan Aktiviteter expanderar du HDInsight och drar Hive-aktiviteten till pipelinedesignytan. På fliken Allmänt anger du ett namn för aktiviteten.

    Add activities to Data Factory pipeline.

  3. Kontrollera att du har valt Hive-aktiviteten och välj fliken HDI-kluster . I listrutan LÄNKAD HDInsight-tjänst väljer du den länkade tjänst som du skapade tidigare, HDInsightLinkedService, för HDInsight.

    Provide HDInsight cluster details for the pipeline.

  4. Välj fliken Skript och slutför följande steg:

    1. För Länkad skripttjänst väljer du HDIStorageLinkedService i listrutan. Det här värdet är den lagringslänkade tjänst som du skapade tidigare.

    2. För Filsökväg väljer du Bläddra i lagring och navigerar till den plats där hive-exempelskriptet är tillgängligt. Om du körde PowerShell-skriptet tidigare bör den här platsen vara adfgetstarted/hivescripts/partitionweblogs.hql.

      Provide Hive script details for the pipeline.

    3. Under Avancerade>parametrar väljer du Auto-fill from script. Det här alternativet letar efter parametrar i Hive-skriptet som kräver värden vid körning.

    4. I textrutan värde lägger du till den befintliga mappen i formatet wasbs://adfgetstarted@<StorageAccount>.blob.core.windows.net/outputfolder/. Sökvägen är skiftlägeskänslig. I den här sökvägen lagras utdata från skriptet. Schemat wasbs är nödvändigt eftersom lagringskonton nu har säker överföring som krävs aktiverad som standard.

      Provide parameters for the Hive script.

  5. Välj Verifiera för att verifiera pipelinen. Klicka på knappen >> (högerpil) för att stänga verifieringsfönstret.

    Validate the Azure Data Factory pipeline.

  6. Välj slutligen Publicera alla för att publicera artefakterna till Azure Data Factory.

    Publish the Azure Data Factory pipeline.

Utlösa en pipeline

  1. I verktygsfältet på designerytan väljer du Lägg till utlösare>nu.

    Trigger the Azure Data Factory pipeline.

  2. Välj OK i popup-sidofältet.

Övervaka en pipeline

  1. Växla till fliken Övervaka till vänster. En pipelinekörning visas i listan Pipeline Runs (Pipelinekörningar). Observera statusen för körningen under kolumnen Status .

    Monitor the Azure Data Factory pipeline.

  2. Välj Uppdatera för att uppdatera statusen.

  3. Du kan också välja ikonen Visa aktivitetskörningar för att se aktivitetskörningen som är associerad med pipelinen. I skärmbilden nedan ser du bara en aktivitetskörning eftersom det bara finns en aktivitet i pipelinen som du skapade. Om du vill växla tillbaka till föregående vy väljer du Pipelines längst upp på sidan.

    Monitor the Azure Data Factory pipeline activity.

Verifiera utdata

  1. Om du vill verifiera utdata går du till det lagringskonto som du använde för den här självstudien i Azure-portalen. Du bör se följande mappar eller containrar:

    • Du ser en adfgerstarted/outputfolder som innehåller utdata från Hive-skriptet som kördes som en del av pipelinen.

    • Du ser en container för adfhdidatafactory-linked-service-name-timestamp<<>>. Den här containern är standardlagringsplatsen för HDInsight-klustret som skapades som en del av pipelinekörningen.

    • Du ser en adfjobs-container som har Azure Data Factory-jobbloggarna.

      Verify the Azure Data Factory pipeline output.

Rensa resurser

När HDInsight-klustret skapas på begäran behöver du inte uttryckligen ta bort HDInsight-klustret. Klustret tas bort baserat på den konfiguration som du angav när du skapade pipelinen. Även när klustret har tagits bort fortsätter lagringskontona som är associerade med klustret att finnas kvar. Det här beteendet är avsiktligt så att du kan hålla dina data intakta. Men om du inte vill spara data kan du ta bort lagringskontot som du skapade.

Du kan också ta bort hela resursgruppen som du skapade för den här självstudien. Den här processen tar bort lagringskontot och Azure Data Factory som du skapade.

Ta bort resursgruppen

  1. Logga in på Azure Portal.

  2. Välj Resursgrupper i det vänstra fönstret.

  3. Välj det resursgruppsnamn som du skapade i PowerShell-skriptet. Använd filtret om du har för många resursgrupper i listan. Resursgruppen öppnas.

  4. På panelen Resurser ska du ha standardlagringskontot och datafabriken listade såvida du inte delar resursgruppen med andra projekt.

  5. Välj Ta bort resursgrupp. Om du gör det tas lagringskontot och data som lagras i lagringskontot bort.

    Azure portal delete resource group.

  6. Ange resursgruppens namn för att bekräfta borttagningen och välj sedan Ta bort.

Nästa steg

I den här artikeln har du lärt dig hur du använder Azure Data Factory för att skapa HDInsight-kluster på begäran och köra Apache Hive-jobb. Gå vidare till nästa artikel för att lära dig hur du skapar HDInsight-kluster med anpassad konfiguration.