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 en Azure HDInsight med 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 lär du dig hur du kör ett stordatajobb där klusterskapande, jobbkörning och borttagning av kluster operationalize gö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 Azure Portal
- Skapa länkade tjänster
- Skapa en pipeline
- Utlösa en pipeline
- Övervaka en pipeline
- Verifiera utdata
Om du inte har en Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.
Förutsättningar
PowerShell Az-modulen installerad.
En Azure Active Directory tjänstens huvudnamn. När du har skapat tjänstens huvudnamn måste du hämta programmets ID och autentiseringsnyckel 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 som klustret skapas i. Anvisningar för att hämta de värden som krävs och tilldela rätt roller finns i Skapa en Azure Active Directory för tjänstens huvudnamn.
Skapa preliminära Azure-objekt
I det här avsnittet skapar du olika objekt som ska användas för HDInsight-klustret som du skapar på begäran. Det skapade lagringskontot innehåller HiveQL-exempelskriptet, , som du använder för att simulera ett exempel på partitionweblogs.hql Apache Hive som körs i klustret.
Det här avsnittet använder Azure PowerShell för att skapa lagringskontot och kopiera över de filer som krävs i lagringskontot. Exempelskriptet Azure PowerShell det här avsnittet utför följande uppgifter:
- Loggar in på Azure.
- Skapar en Azure-resursgrupp.
- Konfigurerar ett Azure Storage-konto.
- Skapar en blobcontainer i lagringskontot
- Kopierar HiveQL-exempelskriptet (partitionweblogs.hql) blobcontainern. Skriptet finns på https://hditutorialdata.blob.core.windows.net/adfhiveactivity/script/partitionweblogs.hql . Exempelskriptet är redan tillgängligt i en annan offentlig blobcontainer. PowerShell-skriptet nedan gör en kopia av dessa filer till det Azure Storage som skapas.
Skapa lagringskonto och kopiera filer
Viktigt
Ange namn för Azure-resursgruppen och det Azure Storage-konto som ska skapas av skriptet. Skriv ned resursgruppens namn, lagringskontots namn och lagringskontonyckeln som skriptet matar ut. 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 lagringskontot
- Logga in på Azure Portal.
- Till vänster går du till Alla tjänster > Allmänna > resursgrupper.
- Välj resursgruppens namn som du skapade i PowerShell-skriptet. Använd filtret om du har för många resursgrupper i listan.
- I vyn Översikt 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 lagringskontots namn.
- Välj panelen Containrar.
- Välj containern adfgetstarted. Du ser en mapp med namnet
hivescripts. - Öppna mappen och kontrollera att den innehåller exempelskriptfilen partitionweblogs.hql.
Förstå Azure Data Factory aktivitet
Azure Data Factory orkestrerar och automatiserar förflyttning och transformering av data. Azure Data Factory kan skapa ett HDInsight Hadoop-kluster just-in-time för att bearbeta ett indatasegment 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 kan använda datatransformeringsaktiviteter för att transformera/bearbeta data. HDInsight Hive-aktivitet ä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:
Ett HDInsight Hadoop-kluster skapas automatiskt för just-in-time-bearbetning av segmentet.
Indata bearbetas genom att ett HiveQL-skript körs i klustret. I den här självstudien gö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.
HDInsight Hadoop-klustret tas bort när bearbetningen är klar och klustret är inaktivt under den konfigurerade tiden (timeToLive-inställningen). Om nästa datasegment är tillgängligt för bearbetning med under den här tidenToLive-inaktivitetstid används samma kluster för att bearbeta segmentet.
Skapa en datafabrik
Logga in på Azure-portalen.
I den vänstra menyn går du till
+ Create a resource> Analytics > Data Factory.
Ange eller välj följande värden för panelen Ny datafabrik:
Egenskap Värde Namn 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-prenumeration. Resursgrupp Välj den resursgrupp som du skapade med hjälp av PowerShell-skriptet. Location Platsen ställs automatiskt in på 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.
Välj Skapa. Det kan ta mellan 2 och 4 minuter att skapa en datafabrik.
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 Data Factory standardvyn.
Välj Författare & Monitor för att starta Azure Data Factory redigerings- och övervakningsportalen.
Skapa länkade tjänster
I det här avsnittet skapar du två länkade tjänster i datafabriken.
- En Azure Storage länkad tjänst som länkar ett 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 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
I den vänstra rutan på sidan Nu börjar vi väljer du ikonen Författare.
Välj Anslutningar i det nedre vänstra hörnet i fönstret och välj sedan +Ny.
I dialogrutan New Linked Service (Ny länkad tjänst) väljer Azure Blob Storage sedan Fortsätt.
Ange följande värden för den länkade lagringstjänsten:
Egenskap Värde Namn 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.
Skapa en på begäran länkad HDInsight-tjänst
Välj knappen +Ny igen för att skapa ytterligare en länkad tjänst.
I fönstret New Linked Service (Ny länkad tjänst) väljer du fliken Compute (Beräkning).
Välj Azure HDInsight och välj sedan Fortsätt.
I fönstret New Linked Service (Ny länkad tjänst) anger du följande värden och lämnar resten som standard:
Egenskap Värde Namn 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. ID för tjänstens huvudnamn Ange program-ID:t för Azure Active Directory tjänstens huvudnamn som du skapade som en del av förutsättningarna. Nyckel för tjänstens huvudnamn Ange autentiseringsnyckeln för Azure Active Directory tjänstens huvudnamn. Klusternamnsprefix Ange ett värde som ska föregås av 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. OS-typ/SSH-användarnamn för kluster Ange ett SSH-användarnamn, vanligtvis sshuser.OS-typ/SSH-lösenord för kluster Ange ett lösenord för SSH-användaren OS-typ/klusteranvändarnamn Ange ett klusteranvändarnamn, vanligtvis admin.Os-typ/klusterlösenord Ange ett lösenord för klusteranvändaren. Välj sedan Skapa.
Skapa en pipeline
Välj + knappen (plus) och välj sedan Pipeline.
I verktygslådan Aktiviteter expanderar du HDInsight och drar Hive-aktiviteten till pipelinedesignytan. På fliken Allmänt anger du ett namn för aktiviteten.
Kontrollera att Hive-aktiviteten är vald 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.
Välj fliken Skript och utför följande steg:
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.
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.
Under Avancerade > parametrar väljer du
Auto-fill from script. Det här alternativet söker efter parametrar i Hive-skriptet som kräver värden vid körning.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. Den här sökvägen är den plats där utdata från skriptet lagras. Schematwasbsär nödvändigt eftersom lagringskonton nu har säker överföring krävs aktiverat som standard.
Välj Verifiera för att verifiera pipelinen. Välj knappen >> (högerpil) för att stänga verifieringsfönstret.
Välj slutligen Publicera alla för att publicera artefakterna till Azure Data Factory.
Utlösa en pipeline
Välj Lägg till utlösare nu i verktygsfältet på > designytan.
Välj OK i popup-sidofältet.
Övervaka en pipeline
Växla till fliken Övervaka till vänster. En pipelinekörning visas i listan Pipeline Runs (Pipelinekörningar). Observera status för körningen i kolumnen Status.
Välj Uppdatera för att uppdatera statusen.
Du kan också välja ikonen Visa aktivitetskörningar för att se den aktivitetskörning 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.
Verifiera utdata
Om du vill verifiera utdata går du Azure Portal till det lagringskonto som du använde för den här självstudien. Du bör se följande mappar eller containrar:
Du ser en adfgerstarted/outputfolder som innehåller utdata från Hive-skriptet som har körts som en del av pipelinen.
Du ser en <linked-service-name> - <timestamp> adfhdidatafactory-container. 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 jobbloggar.
Rensa resurser
När HDInsight-klustret skapas på begäran behöver du inte uttryckligen ta bort HDInsight-klustret. Klustret tas bort baserat på konfigurationen som du angav när du skapade pipelinen. Även när klustret har tagits bort fortsätter de lagringskonton som är associerade med klustret att finnas kvar. Det här beteendet är enligt design så att du kan hålla dina data intakta. Men om du inte vill spara data kan du ta bort lagringskontot som du skapade.
Eller så kan du 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
Logga in på Azure Portal.
Välj Resursgrupper i det vänstra fönstret.
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.
På panelen Resurser ska du ha standardlagringskontot och datafabriken listade om du inte delar resursgruppen med andra projekt.
Välj Ta bort resursgrupp. Om du gör det tas lagringskontot och de data som lagras i lagringskontot bort.
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 om du vill lära dig hur du skapar HDInsight-kluster med anpassad konfiguration.