Share via


Zelfstudie: Apache Hadoop-clusters op aanvraag maken in HDInsight met behulp van Azure Data Factory

In deze zelfstudie leert u hoe u een Apache Hadoop-cluster op aanvraag maakt in Azure HDInsight met behulp van Azure Data Factory. Vervolgens gebruikt u gegevenspijplijnen in Azure Data Factory om Hive-taken uit te voeren en het cluster te verwijderen. Aan het einde van deze zelfstudie leert u hoe operationalize u een big data-taak uitvoert waarin het maken, uitvoeren van een taak en het verwijderen van clusters volgens een planning worden uitgevoerd.

In deze handleiding worden de volgende taken behandeld:

  • Een Azure-opslagaccount maken
  • Inzicht in Azure Data Factory-activiteit
  • Een data factory maken met behulp van Azure Portal
  • Gekoppelde services maken
  • Een pijplijn maken
  • Een pijplijn activeren
  • Een pijplijn bewaken
  • De uitvoer controleren

Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint.

Vereiste voorwaarden

  • De PowerShell Az-module is geïnstalleerd.

  • Een Microsoft Entra-service-principal. Nadat u de service-principal hebt gemaakt, moet u de toepassings-id en verificatiesleutel ophalen met behulp van de instructies in het gekoppelde artikel. U hebt deze waarden later in deze zelfstudie nodig. Zorg er ook voor dat de service-principal lid is van de rol Inzender van het abonnement of de resourcegroep waarin het cluster wordt gemaakt. Zie Een Microsoft Entra-service-principal maken voor instructies voor het ophalen van de vereiste waarden en het toewijzen van de juiste rollen.

Voorlopige Azure-objecten maken

In deze sectie maakt u verschillende objecten die worden gebruikt voor het HDInsight-cluster dat u op aanvraag maakt. Het gemaakte opslagaccount bevat het HiveQL-voorbeeldscript, partitionweblogs.hqldat u gebruikt om een Apache Hive-voorbeeldtaak te simuleren die wordt uitgevoerd op het cluster.

In deze sectie wordt een Azure PowerShell-script gebruikt om het opslagaccount te maken en de vereiste bestanden in het opslagaccount te kopiëren. Het Azure PowerShell-voorbeeldscript in deze sectie voert de volgende taken uit:

  1. Meldt u aan bij Azure.
  2. Hiermee maakt u een Azure-resourcegroep.
  3. Hiermee wordt een Azure Storage-account gemaakt.
  4. Hiermee maakt u een Blob-container in het opslagaccount
  5. Kopieert het HiveQL-voorbeeldscript (partitionweblogs.hql) naar de Blob-container. Het voorbeeldscript is al beschikbaar in een andere openbare Blob-container. Met het onderstaande PowerShell-script wordt een kopie van deze bestanden aangemaakt in het Azure Storage-account dat het aanmaakt.

Opslagaccount maken en bestanden kopiëren

Belangrijk

Geef namen op voor de Azure-resourcegroep en het Azure-opslagaccount dat door het script wordt gemaakt. Noteer de naam van de resourcegroep, de naam van het opslagaccount en de sleutel van het opslagaccount die door het script wordt uitgevoerd. U hebt ze nodig in de volgende sectie.

$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

Opslagaccount controleren

  1. Meld u aan bij Azure Portal.
  2. Navigeer aan de linkerkant naar Alle services>Algemene>resourcegroepen.
  3. Selecteer de naam van de resourcegroep die u hebt gemaakt in uw PowerShell-script. Gebruik het filter als er te veel resourcegroepen worden vermeld.
  4. In de weergave Overzicht ziet u één resource die wordt vermeld, tenzij u de resourcegroep met andere projecten deelt. Deze resource is het opslagaccount met de naam die u eerder hebt opgegeven. Selecteer de naam van het opslagaccount.
  5. Selecteer de tegel Containers .
  6. Selecteer de adfgetstarted container. U ziet een map met de naam hivescripts.
  7. Open de map en controleer of deze het voorbeeldscriptbestand partitionweblogs.hql bevat.

Inzicht in de Azure Data Factory-activiteit

Azure Data Factory organiseert en automatiseert het verplaatsen en transformeren van gegevens. Azure Data Factory kan just-in-time een HDInsight Hadoop-cluster maken om een invoergegevenssegment te verwerken en het cluster te verwijderen wanneer de verwerking is voltooid.

In Azure Data Factory kan een data factory een of meer gegevenspijplijnen hebben. Een gegevenspijplijn heeft een of meer activiteiten. Er zijn twee soorten activiteiten:

  • Activiteiten voor gegevensverplaatsing. U gebruikt activiteiten voor gegevensverplaatsing om gegevens van een brongegevensarchief naar een doelgegevensarchief te verplaatsen.
  • Activiteiten voor gegevenstransformatie. U gebruikt activiteiten voor gegevenstransformatie om gegevens te transformeren/verwerken. HDInsight Hive-activiteit is een van de transformatieactiviteiten die worden ondersteund door Data Factory. In deze zelfstudie gebruikt u de Hive-transformatieactiviteit.

In dit artikel configureert u de Hive-activiteit om een HDInsight Hadoop-cluster op aanvraag te maken. Wanneer de activiteit wordt uitgevoerd om gegevens te verwerken, gebeurt het volgende:

  1. Er wordt automatisch een HDInsight Hadoop-cluster gemaakt om het gegevenssegment tijdig te verwerken.

  2. De invoergegevens worden verwerkt door een HiveQL-script uit te voeren op het cluster. In deze zelfstudie voert het HiveQL-script dat is gekoppeld aan de hive-activiteit de volgende acties uit:

    • Maakt gebruik van de bestaande tabel (hivesampletable) om een andere tabel HiveSampleOut te maken.
    • Hiermee wordt de tabel HiveSampleOut gevuld met alleen specifieke kolommen uit de oorspronkelijke hivesampletable.
  3. Het HDInsight Hadoop-cluster wordt verwijderd nadat de verwerking is voltooid en het cluster inactief is voor de geconfigureerde hoeveelheid tijd (timeToLive-instelling). Als het volgende gegevenssegment beschikbaar is voor verwerking met in deze timeToLive niet-actieve tijd, wordt hetzelfde cluster gebruikt om het segment te verwerken.

Een data factory maken

  1. Meld u aan bij het Azure-portaal.

  2. Navigeer in het linkermenu naar + Create a resource>Analytics>Data Factory.

    Azure Data Factory in de portal.

  3. Voer de volgende waarden in of selecteer deze voor het onderdeel Nieuwe data factory :

    Vastgoed Waarde
    Naam Voer een naam in voor de data factory. Deze naam moet wereldwijd uniek zijn.
    Versie Vertrek bij V2.
    Subscription Selecteer uw Azure-abonnement.
    Bronnengroep Selecteer de resourcegroep die u hebt gemaakt met behulp van het PowerShell-script.
    Locatie De locatie wordt automatisch ingesteld op de locatie die u hebt opgegeven tijdens het maken van de resourcegroep eerder. Voor deze zelfstudie is de locatie ingesteld op VS - oost.
    GIT inschakelen Schakel dit selectievakje uit.

    Azure Data Factory maken met behulp van Azure Portal.

  4. Klik op Creëren. Het maken van een data factory kan 2 tot 4 minuten duren.

  5. Zodra de data factory is gemaakt, ontvangt u een melding dat de implementatie is voltooid met de knop Ga naar de resource . Selecteer Ga naar de resource om de standaardweergave van Data Factory te openen.

  6. Selecteer Author & Monitor om de Azure Data Factory-ontwerp- en bewakingsportal te starten.

    Overzicht van de Azure Data Factory-portal.

Gekoppelde services maken

In dit gedeelte maakt u twee gekoppelde diensten in uw data factory.

  • Een gekoppelde Azure Storage-service waarmee een Azure-opslagaccount wordt gekoppeld aan de gegevensfactory. Deze opslag wordt gebruikt voor het HDInsight-cluster op aanvraag. Het bevat ook het Hive-script dat wordt uitgevoerd op het cluster.
  • Een gekoppelde HDInsight-service op aanvraag. Azure Data Factory maakt automatisch een HDInsight-cluster en voert het Hive-script uit. Het HDInsight-cluster wordt vervolgens verwijderd als het cluster gedurende een vooraf geconfigureerde tijd inactief is geweest.

Een gekoppelde Azure Storage-service maken

  1. Selecteer in het linkerdeelvenster van de pagina Aan de slag het pictogram Auteur .

    Maak een gekoppelde Azure Data Factory-service.

  2. Selecteer Verbindingen in de linkerbenedenhoek van het venster en selecteer vervolgens +Nieuw.

    Maak verbindingen in Azure Data Factory.

  3. Selecteer Azure Blob Storage in het dialoogvenster Nieuwe gekoppelde service en selecteer vervolgens Doorgaan.

    Een gekoppelde Azure Storage-service maken voor Data Factory.

  4. Geef de volgende waarden op voor de gekoppelde opslagservice:

    Vastgoed Waarde
    Naam Voer HDIStorageLinkedServicein.
    Azure-abonnement Selecteer uw abonnement in de vervolgkeuzelijst.
    Naam van het opslagaccount Selecteer het Azure Storage-account dat u hebt gemaakt als onderdeel van het PowerShell-script.

    Selecteer Verbinding testen en selecteer vervolgens Maken als dit is gelukt.

    Geef een naam op voor de gekoppelde Azure Storage-service.

Een gekoppelde HDInsight-service op aanvraag maken

  1. Selecteer nogmaals de knop + Nieuw om een andere gekoppelde service te maken.

  2. Selecteer in het venster Nieuwe gekoppelde service het tabblad Compute .

  3. Selecteer Azure HDInsight en selecteer vervolgens Doorgaan.

    Een gekoppelde HDInsight-service maken voor Azure Data Factory.

  4. Voer in het venster Nieuwe gekoppelde service de volgende waarden in en laat de rest standaard staan:

    Vastgoed Waarde
    Naam Voer HDInsightLinkedServicein.
    Typologie Selecteer HDInsight op aanvraag.
    Gekoppelde Azure Storage-service Selecteer HDIStorageLinkedService.
    Clustertype Hadoop selecteren
    Tijd om te leven Geef de duur op waarvoor het HDInsight-cluster beschikbaar moet zijn voordat u het automatisch verwijdert.
    Service-principal-id Geef de toepassings-id op van de Microsoft Entra-service-principal die u hebt gemaakt als onderdeel van de vereisten.
    Sleutel van de service-principal Geef de verificatiesleutel op voor de Microsoft Entra-service-principal.
    Clusternaamvoorvoegsel Geef een waarde op die wordt voorafgegaan door alle clustertypen die door de data factory zijn gemaakt.
    Subscription Selecteer uw abonnement in de vervolgkeuzelijst.
    Resourcegroep selecteren Selecteer de resourcegroep die u hebt gemaakt als onderdeel van het PowerShell-script dat u eerder hebt gebruikt.
    Type besturingssysteem/SSH-gebruikersnaam van cluster Voer meestal sshusereen SSH-gebruikersnaam in.
    SSH-wachtwoord voor het besturingssysteem/cluster Geef een wachtwoord op voor de SSH-gebruiker
    Gebruikersnaam van besturingssysteem/cluster Voer meestal admineen gebruikersnaam voor een cluster in.
    Type besturingssysteem/clusterwachtwoord Geef een wachtwoord op voor de clustergebruiker.

    Klik vervolgens op Maken.

    Geef waarden op voor de gekoppelde HDInsight-service.

Een pijplijn maken

  1. Selecteer de + knop (plus) en selecteer vervolgens Pijplijn.

    Maak een pijplijn in Azure Data Factory.

  2. Vouw HDInsight uit in de werkset Activiteiten en sleep de Hive-activiteit naar het ontwerpoppervlak voor pijplijnen. Geef op het tabblad Algemeen een naam op voor de activiteit.

    Activiteiten toevoegen aan de Data Factory-pijplijn.

  3. Zorg ervoor dat u de Hive-activiteit hebt geselecteerd en selecteer het tabblad HDI-cluster . Selecteer in de vervolgkeuzelijst Gekoppelde HDInsight-service de gekoppelde service die u eerder hebt gemaakt, HDInsightLinkedService voor HDInsight.

    Geef de details van het HDInsight-cluster voor de pijplijn op.

  4. Selecteer het tabblad Script en voer de volgende stappen uit:

    1. Selecteer HDIStorageLinkedService in de vervolgkeuzelijst voor de gekoppelde scriptservice. Deze waarde is de gekoppelde opslagservice die u eerder hebt gemaakt.

    2. Selecteer Bestandspad en kies Blader opslag om naar de locatie te navigeren waar het Hive-voorbeeldscript beschikbaar is. Als u het PowerShell-script eerder hebt uitgevoerd, moet deze locatie zijn adfgetstarted/hivescripts/partitionweblogs.hql.

      Geef details van hive-scripts op voor de pijplijn.

    3. Selecteer onder Geavanceerde>parameters de optie Auto-fill from script. Met deze optie wordt gezocht naar parameters in het Hive-script waarvoor waarden tijdens runtime zijn vereist.

    4. Voeg in het tekstvak waarde de bestaande map toe in de indeling wasbs://adfgetstarted@<StorageAccount>.blob.core.windows.net/outputfolder/. Het pad is hoofdlettergevoelig. In dit pad wordt de uitvoer van het script opgeslagen. Het wasbs schema is nodig omdat opslagaccounts nu standaard beveiligde overdracht hebben ingeschakeld.

      Geef parameters op voor het Hive-script.

  5. Selecteer Valideren om de pijplijn te valideren. Selecteer de >> (pijl-rechts) om het validatievenster te sluiten.

    Valideer de Azure Data Factory-pijplijn.

  6. Kies tot slot Alles publiceren om de artefacten in Azure Data Factory te publiceren.

    Publiceer de Azure Data Factory-pijplijn.

Een pijplijn activeren

  1. Selecteer Trigger toevoegen> en daarna Nu Triggeren in de werkbalk op het ontwerpoppervlak.

    Activeer de Azure Data Factory-pijplijn.

  2. Selecteer OK in de pop-up-zijbalk.

Een pijplijn bewaken

  1. Ga naar het tabblad Controleren aan de linkerkant. U ziet een pijplijn die worden uitgevoerd in de lijst Pipeline Runs. Let op de status van de uitvoering onder de kolom Status .

    Bewaak de Azure Data Factory-pijplijn.

  2. Selecteer Vernieuwen om de status te vernieuwen.

  3. U kunt ook het pictogram Activiteituitvoeringen bekijken selecteren om de activiteituitvoering die aan de pijplijn is gekoppeld te zien. In de onderstaande schermopname ziet u slechts één activiteitsuitvoering, omdat er slechts één activiteit is in de pijplijn die u hebt gemaakt. Als u wilt teruggaan naar de vorige weergave, selecteert u Pijplijnen boven aan de pagina.

    Bewaak de activiteit van de Azure Data Factory-pijplijn.

De uitvoer controleren

  1. Als u de uitvoer wilt controleren, gaat u in Azure Portal naar het opslagaccount dat u voor deze zelfstudie hebt gebruikt. U ziet nu de volgende mappen of containers:

    • U ziet een adfgerstarted/outputfolder die de uitvoer bevat van het Hive-script dat is uitgevoerd als onderdeel van de pijplijn.

    • U ziet een adfhdidatafactory-<linked-service-name->timestamp-<container>. Deze container is de standaardopslaglocatie van het HDInsight-cluster dat is gemaakt als onderdeel van de pijplijnuitvoering.

    • U ziet een adfjobs-container met de Azure Data Factory-taaklogboeken.

      Controleer de uitvoer van de Azure Data Factory-pijplijn.

De hulpbronnen opschonen

Wanneer het HDInsight-cluster op aanvraag is gemaakt, hoeft u het HDInsight-cluster niet expliciet te verwijderen. Het cluster wordt verwijderd op basis van de configuratie die u hebt opgegeven tijdens het maken van de pijplijn. Zelfs nadat het cluster is verwijderd, blijven de opslagaccounts die aan het cluster zijn gekoppeld, bestaan. Dit gedrag is standaard, zodat u uw gegevens intact kunt houden. Als u de gegevens echter niet wilt behouden, kunt u het opslagaccount verwijderen dat u hebt gemaakt.

U kunt de volledige resourcegroep verwijderen die u voor deze tutorial hebt aangemaakt. Met dit proces worden het opslagaccount en de Azure Data Factory verwijderd die u hebt gemaakt.

De resourcegroep verwijderen

  1. Meld u aan bij Azure Portal.

  2. Selecteer Resourcegroepen in het linkerdeelvenster.

  3. Selecteer de naam van de resourcegroep die u hebt gemaakt in uw PowerShell-script. Gebruik het filter als er te veel resourcegroepen worden vermeld. De resourcegroep wordt geopend.

  4. Op de tegel Resources hebt u het standaardopslagaccount en de data factory vermeld, tenzij u de resourcegroep met andere projecten deelt.

  5. Selecteer Resourcegroep verwijderen. Als u dit doet, worden het opslagaccount en de gegevens verwijderd die zijn opgeslagen in het opslagaccount.

    Azure Portal verwijdert de resourcegroep.

  6. Voer de naam van de resourcegroep in om het verwijderen te bevestigen en selecteer Vervolgens Verwijderen.

Volgende stappen

In dit artikel hebt u geleerd hoe u Azure Data Factory gebruikt om een HDInsight-cluster op aanvraag te maken en Apache Hive-taken uit te voeren. Ga naar het volgende artikel voor meer informatie over het maken van HDInsight-clusters met aangepaste configuratie.