Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Lernprogramm erfahren Sie, wie Sie einen Apache Hadoop-Cluster bei Bedarf in Azure HDInsight mithilfe von Azure Data Factory erstellen. Anschließend verwenden Sie Datenpipelinen in Azure Data Factory, um Hive-Aufträge auszuführen und den Cluster zu löschen. In diesem Tutorial erfahren Sie, wie Sie einen operationalize-Vorgang für die Ausführung eines Big Data-Auftrags ausführen, bei dem die Clustererstellung, Auftragsausführung und Clusterlöschung nach einem Zeitplan erfolgen.
Dieses Tutorial enthält die folgenden Aufgaben:
- Erstellen eines Azure-Speicherkontos
- Grundlegendes zu Azure Data Factory-Aktivitäten
- Erstellen Sie eine Datenfabrik mithilfe des Azure-Portals
- Erstellen von verknüpften Diensten
- Erstellen einer Pipeline
- Auslösen einer Pipeline
- Überwachen einer Pipeline
- Überprüfen der Ausgabe
Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
Voraussetzungen
Das PowerShell Az-Modul ist installiert.
Ein Microsoft Entra-Dienstprinzipal. Nachdem Sie den Dienstprinzipal erstellt haben, stellen Sie sicher, dass die Anwendungs-ID und der Authentifizierungsschlüssel mithilfe der Anweisungen im verknüpften Artikel abgerufen wird. Sie benötigen diese Werte später in diesem Lernprogramm. Dieser Dienstprinzipal muss außerdem Mitglied der Rolle Mitwirkender in dem Abonnement oder der Ressourcengruppe sein, in dem bzw. der der Cluster erstellt wird. Anweisungen zum Abrufen der erforderlichen Werte und zum Zuweisen der richtigen Rollen finden Sie unter Erstellen eines Microsoft Entra-Dienstprinzipals.
Erstellen vorläufiger Azure-Objekte
In diesem Abschnitt erstellen Sie verschiedene Objekte, die für den HDInsight-Cluster verwendet werden, den Sie bei Bedarf erstellen. Das erstellte Speicherkonto enthält das HiveQL-Beispielskript, partitionweblogs.hqldas Sie zum Simulieren eines Apache Hive-Beispielauftrags verwenden, der auf dem Cluster ausgeführt wird.
In diesem Abschnitt wird ein Azure PowerShell-Skript verwendet, um das Speicherkonto zu erstellen und die erforderlichen Dateien im Speicherkonto zu kopieren. Das Azure PowerShell-Beispielskript in diesem Abschnitt führt die folgenden Aufgaben aus:
- Meldet sich bei Azure an.
- Erstellt eine Azure-Ressourcengruppe.
- Erstellt ein Azure Storage-Konto.
- Erstellt einen BLOB-Container im Speicherkonto.
- Kopiert das Beispiel-HiveQL-Skript (partitionweblogs.hql) in den Blob-Container. Das Beispielskript ist bereits in einem anderen öffentlichen BLOB-Container verfügbar. Das folgende PowerShell-Skript erstellt eine Kopie dieser Dateien in das von ihr erstellte Azure Storage-Konto.
Erstellen eines Speicherkontos und Kopieren von Dateien
Von Bedeutung
Geben Sie Namen für die Azure-Ressourcengruppe und das Azure-Speicherkonto an, das vom Skript erstellt wird. Notieren Sie sich den Ressourcengruppennamen, den Namen des Speicherkontos und den vom Skript ausgegebenen Speicherkontoschlüssel . Sie benötigen sie im nächsten Abschnitt.
$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
Überprüfen des Speicherkontos
- Melden Sie sich beim Azure-Portal an.
- Navigieren Sie von links zu "Alle Dienste>: Allgemeine>Ressourcengruppen".
- Wählen Sie den Ressourcengruppennamen aus, den Sie in Ihrem PowerShell-Skript erstellt haben. Verwenden Sie den Filter, wenn zu viele Ressourcengruppen aufgelistet sind.
- In der Übersichtsansicht wird eine Ressource aufgelistet, es sei denn, Sie geben die Ressourcengruppe für andere Projekte freigegeben. Diese Ressource ist das Speicherkonto mit dem Namen, den Sie zuvor angegeben haben. Wählen Sie den Namen des Speicherkontos aus.
- Wählen Sie die Kachel "Container" aus .
- Wählen Sie den adfgetstarted-Container aus. Es wird ein Ordner mit dem Namen angezeigt
hivescripts. - Öffnen Sie den Ordner, und stellen Sie sicher, dass er die Beispielskriptdatei partitionweblogs.hql enthält.
Grundlegendes zur Azure Data Factory-Aktivität
Azure Data Factory koordiniert und automatisiert die Bewegung und Transformation von Daten. Azure Data Factory kann einen HDInsight Hadoop-Cluster just-in-time erstellen, um ein Eingabedatensegment zu verarbeiten und den Cluster zu löschen, wenn die Verarbeitung abgeschlossen ist.
In Azure Data Factory kann eine Datenfabrik eine oder mehrere Datenpipelines enthalten. Eine Datenpipeline verfügt über eine oder mehrere Aktivitäten. Es gibt zwei Arten von Aktivitäten:
- Datenverschiebungsaktivitäten. Sie verwenden Datenverschiebungsaktivitäten, um Daten aus einem Quelldatenspeicher in einen Zieldatenspeicher zu verschieben.
- Datentransformationsaktivitäten. Sie verwenden Datentransformationsaktivitäten zum Transformieren/Verarbeiten von Daten. HDInsight Hive Activity ist eine der Transformationsaktivitäten, die von Data Factory unterstützt werden. Sie verwenden die Hive-Transformationsaktivität in diesem Lernprogramm.
In diesem Artikel konfigurieren Sie die Hive-Aktivität zum Erstellen eines HDInsight Hadoop-Clusters bei Bedarf. Wenn die Aktivität ausgeführt wird, um Daten zu verarbeiten, geschieht Folgendes:
Ein HDInsight Hadoop-Cluster wird automatisch erstellt, damit Sie den Teil just-in-time verarbeiten können.
Die Eingabedaten werden verarbeitet, indem ein HiveQL-Skript auf dem Cluster ausgeführt wird. In diesem Tutorial führt das HiveQL-Skript, das der Hive-Aktivität zugeordnet ist, die folgenden Aktionen aus:
- Verwendet die vorhandene Tabelle (hivesampletable) zum Erstellen einer anderen Tabelle HiveSampleOut.
- Füllt die Tabelle "HiveSampleOut" nur mit bestimmten Spalten aus der ursprünglichen Tabelle "hivesampletable" auf.
Der HDInsight Hadoop-Cluster wird gelöscht, nachdem die Verarbeitung abgeschlossen ist und der Cluster für den konfigurierten Zeitraum im Leerlauf ist (TimeToLive-Einstellung). Wenn das nächste Datensegment für die Verarbeitung mit dieser ZeitToLive-Leerlaufzeit verfügbar ist, wird derselbe Cluster verwendet, um das Segment zu verarbeiten.
Erstellen einer Data Factory
Melden Sie sich beim Azure-Portal an.
Navigieren Sie im linken Menü zu
+ Create a resource>Analytics>Data Factory.
Geben Sie die folgenden Werte für die Kachel "Neue Datenfabrik " ein, oder wählen Sie sie aus:
Eigentum Wert Name Geben Sie einen Namen für die Datenfabrik ein. Dieser Name muss global eindeutig sein. Version Verlassen Sie V2. Subscription Wählen Sie Ihr Azure-Abonnement. Ressourcengruppe Wählen Sie die Ressourcengruppe aus, die Sie mit dem PowerShell-Skript erstellt haben. Standort Der Standort wird automatisch auf den Standort festgelegt, den Sie beim Erstellen der Ressourcengruppe früher angegeben haben. Für dieses Lernprogramm ist der Speicherort auf "Ost-USA" festgelegt. GIT aktivieren Deaktivieren Sie dieses Kontrollkästchen.
Wählen Sie "Erstellen" aus. Das Erstellen einer Datenfactory kann zwischen 2 und 4 Minuten dauern.
Nachdem die Data Factory erstellt wurde, erhalten Sie die Benachrichtigung Bereitstellung erfolgreich mit einer Schaltfläche Zu Ressource wechseln. Wählen Sie "Gehe zu Ressource" aus, um die Standardansicht "Data Factory" zu öffnen.
Wählen Sie Autor & Monitor aus, um das Azure Data Factory-Erstellungs- und Überwachungsportal zu starten.
Erstellen von verknüpften Diensten
In diesem Abschnitt erstellen Sie zwei verknüpfte Dienste in Ihrer Datenfactory.
- Einen verknüpften Azure Storage-Dienst, der ein Azure-Speicherkonto mit der Data Factory verknüpft. Dieser Speicher wird vom bedarfsgesteuerten HDInsight-Cluster verwendet. Es enthält auch das Hive-Skript, das auf dem Cluster ausgeführt wird.
- Einen bedarfsgesteuerten verknüpften HDInsight-Dienst. Azure Data Factory erstellt automatisch einen HDInsight-Cluster und führt das Hive-Skript aus. Anschließend wird der HDInsight-Cluster gelöscht, nachdem er sich für einen vorkonfigurierten Zeitraum im Leerlauf befunden hat.
Erstellen eines verknüpften Azure Storage-Diensts
Wählen Sie im linken Bereich der Seite " Erste Schritte " das Symbol "Autor" aus.
Wählen Sie "Verbindungen" in der unteren linken Ecke des Fensters und dann +Neu aus.
Wählen Sie im Dialogfeld "Neuer verknüpfter Dienst " Azure Blob Storage und dann "Weiter" aus.
Geben Sie die folgenden Werte für den speichergebundenen Dienst an:
Eigentum Wert Name Geben Sie HDIStorageLinkedServiceein.Azure-Abonnement Wählen Sie Ihr Abonnement aus der Dropdownliste aus. Speicherkontoname Wählen Sie das Azure Storage-Konto aus, das Sie als Teil des PowerShell-Skripts erstellt haben. Wählen Sie "Verbindung testen" und bei erfolgreicher Ausführung dann " Erstellen" aus.
Erstellen eines bedarfsgesteuerten verknüpften HDInsight-Diensts
Wählen Sie erneut die Schaltfläche + Neu, um einen weiteren verknüpften Dienst zu erstellen.
Wählen Sie im Fenster "Neuer verknüpfter Dienst " die Registerkarte " Berechnen " aus.
Wählen Sie Azure HDInsight und dann "Weiter" aus.
Geben Sie im Fenster "Neuer verknüpfter Dienst " die folgenden Werte ein, und lassen Sie den Rest als Standard:
Eigentum Wert Name Geben Sie HDInsightLinkedServiceein.Typ Wählen Sie On-Demand HDInsight aus. Verknüpfter Azure Storage-Dienst Wählen Sie HDIStorageLinkedServiceaus.Clustertyp Select hadoop Zeit zum Leben Geben Sie die Dauer an, für die der HDInsight-Cluster verfügbar sein soll, bevor er automatisch gelöscht wird. Diensthauptbenutzer-ID Geben Sie die Anwendungs-ID des Microsoft Entra-Dienstprinzipals an, den Sie zur Vorbereitung erstellt haben. Service Principal-Schlüssel Geben Sie den Authentifizierungsschlüssel für den Microsoft Entra-Dienstprinzipal an. Clustername-Präfix Geben Sie einen Wert an, der allen Clustertypen vorangestellt wird, die von der Datenfactory erstellt wurden. Subscription Wählen Sie Ihr Abonnement aus der Dropdownliste aus. Auswählen der Ressourcengruppe Wählen Sie die Ressourcengruppe aus, die Sie als Teil des zuvor verwendeten PowerShell-Skripts erstellt haben. Betriebssystemtyp/Cluster-SSH-Benutzername Geben Sie einen SSH-Benutzernamen ein, häufig sshuser.Betriebssystemtyp/Cluster-SSH-Kennwort Bereitstellen eines Kennworts für den SSH-Benutzer Betriebssystemtyp/Clusterbenutzername Geben Sie einen Clusterbenutzernamen ein, häufig admin.Betriebssystemtyp/Clusterkennwort Geben Sie ein Kennwort für den Clusterbenutzer an. Wählen Sie dann Erstellen aus.
Erstellen einer Pipeline
Wählen Sie die + Schaltfläche (Plus) und dann "Pipeline" aus.
Erweitern Sie in der Toolbox Aktivitäten die Option HDInsight, und ziehen Sie die Aktivität Hive auf die Oberfläche des Pipeline-Designers. Geben Sie auf der Registerkarte " Allgemein " einen Namen für die Aktivität an.
Stellen Sie sicher, dass die Hive-Aktivität ausgewählt ist, und wählen Sie die Registerkarte HDI-Cluster aus. Wählen Sie in der Dropdownliste HDInsight Linked Service den verknüpften Dienst aus, den Sie zuvor erstellt haben, HDInsightLinkedService, für HDInsight.
Wählen Sie die Registerkarte "Skript " aus, und führen Sie die folgenden Schritte aus:
Wählen Sie für skriptverknüpften Dienst in der Dropdownliste HDIStorageLinkedService aus. Dieser Wert ist der speicherlinke Dienst, den Sie zuvor erstellt haben.
Wählen Sie für den DateipfadSpeicher durchsuchen aus, und navigieren Sie zu dem Speicherort, an dem das Beispiel-Hive-Skript verfügbar ist. Wenn Sie das PowerShell-Skript zuvor ausgeführt haben, sollte dieser Speicherort sein
adfgetstarted/hivescripts/partitionweblogs.hql.
Wählen Sie unter "Erweiterte>Parameter" die Option
Auto-fill from scriptaus. Diese Option sucht nach Parametern im Hive-Skript, die Zur Laufzeit Werte erfordern.Fügen Sie im Werttextfeld den vorhandenen Ordner im Format
wasbs://adfgetstarted@<StorageAccount>.blob.core.windows.net/outputfolder/hinzu. Der Pfad berücksichtigt die Groß- und Kleinschreibung. Dieser Pfad ist der Ort, an dem die Ausgabe des Skripts gespeichert wird. DaswasbsSchema ist erforderlich, da Speicherkonten jetzt standardmäßig die sichere Übertragung aktiviert haben.
Wählen Sie "Überprüfen" aus, um die Pipeline zu überprüfen. Wählen Sie die Schaltfläche >> (Pfeil nach rechts), um das Überprüfungsfenster zu schließen.
Wählen Sie schließlich "Alle veröffentlichen " aus, um die Artefakte in Azure Data Factory zu veröffentlichen.
Auslösen einer Pipeline
Wählen Sie auf der Symbolleiste auf der Designeroberfläche Trigger hinzufügen>Jetzt triggern aus.
Wählen Sie in der Popupleiste "OK " aus.
Überwachen einer Pipeline
Wechseln Sie im linken Bereich zur Registerkarte Überwachen. In der Liste mit den Pipelineausführungen wird eine Pipelineausführung angezeigt. Beachten Sie den Status der Ausführung unter der Spalte "Status ".
Wählen Sie "Aktualisieren" aus, um den Status zu aktualisieren.
Sie können auch das Symbol " Aktivitätsläufe anzeigen " auswählen, um die aktivitätsausführung anzuzeigen, die der Pipeline zugeordnet ist. Im folgenden Screenshot wird nur eine Aktivität ausgeführt, da nur eine Aktivität in der von Ihnen erstellten Pipeline vorhanden ist. Um zur vorherigen Ansicht zurückzukehren, wählen Sie "Pipelines " am oberen Rand der Seite aus.
Überprüfen der Ausgabe
Um die Ausgabe zu überprüfen, navigieren Sie im Azure-Portal zu dem Speicherkonto, das Sie für dieses Lernprogramm verwendet haben. Die folgenden Ordner oder Container sollten angezeigt werden:
Es wird ein adfgerstarted/outputfolder angezeigt, der die Ausgabe des Hive-Skripts enthält, das als Teil der Pipeline ausgeführt wurde.
Sie sehen einen adfhdidatafactory-<linked-service-name>-<timestamp>-Container. Dieser Container ist der Standardspeicherort des HDInsight-Clusters, der als Teil der Pipelineausführung erstellt wurde.
Es wird ein Adfjobs-Container mit den Azure Data Factory-Auftragsprotokollen angezeigt.
Bereinigen von Ressourcen
Bei der Erstellung des HDInsight-Clusters bei Bedarf müssen Sie den HDInsight-Cluster nicht explizit löschen. Der Cluster wird basierend auf der konfiguration gelöscht, die Sie beim Erstellen der Pipeline bereitgestellt haben. Selbst nachdem der Cluster gelöscht wurde, sind die dem Cluster zugeordneten Speicherkonten weiterhin vorhanden. Dieses Verhalten ist beabsichtigt, sodass Sie Ihre Daten intakt halten können. Wenn Sie die Daten jedoch nicht speichern möchten, können Sie das von Ihnen erstellte Speicherkonto löschen.
Sie können auch die gesamte Ressourcengruppe löschen, die Sie für dieses Lernprogramm erstellt haben. Dieser Vorgang löscht das Speicherkonto und die Azure Data Factory, die Sie erstellt haben.
Löschen der Ressourcengruppe
Melden Sie sich beim Azure-Portal an.
Wählen Sie " Ressourcengruppen " im linken Bereich aus.
Wählen Sie den Ressourcengruppennamen aus, den Sie in Ihrem PowerShell-Skript erstellt haben. Verwenden Sie den Filter, wenn zu viele Ressourcengruppen aufgelistet sind. Es öffnet die Ressourcengruppe.
Auf der Kachel „Ressourcen“ wird standardmäßig das Standardspeicherkonto und die Datenfabrik aufgelistet, es sei denn, Sie teilen die Ressourcengruppe mit anderen Projekten.
Wählen Sie die Option Ressourcengruppe löschen. Dadurch werden das Speicherkonto und die im Speicherkonto gespeicherten Daten gelöscht.
Geben Sie den Namen der Ressourcengruppe ein, um den Löschvorgang zu bestätigen, und wählen Sie dann "Löschen" aus.
Nächste Schritte
In diesem Artikel haben Sie erfahren, wie Sie Azure Data Factory zum Erstellen von HDInsight-Clustern bei Bedarf verwenden und Apache Hive-Aufträge ausführen. Wechseln Sie zum nächsten Artikel, um zu erfahren, wie HDInsight-Cluster mit benutzerdefinierter Konfiguration erstellt werden.