Partager via


Tutoriel : Créer des clusters Apache Hadoop à la demande dans HDInsight à l’aide d’Azure Data Factory

Dans ce tutoriel, vous allez apprendre à créer un cluster Apache Hadoop , à la demande, dans Azure HDInsight à l’aide d’Azure Data Factory. Vous utilisez ensuite des pipelines de données dans Azure Data Factory pour exécuter des travaux Hive et supprimer le cluster. À la fin de ce didacticiel, vous allez apprendre à operationalize exécuter une tâche Big Data où la création du cluster, l’exécution du travail et la suppression de cluster sont effectuées selon une planification.

Ce tutoriel décrit les tâches suivantes :

  • Créer un compte de stockage Azure
  • Comprendre l’activité Azure Data Factory
  • Créer une fabrique de données à l’aide du portail Azure
  • Créez des services liés
  • Créer une chaîne de traitement
  • Déclencher un pipeline
  • Surveiller un pipeline
  • Vérifier la sortie

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Prerequisites

  • Module PowerShell Az installé.

  • Un principal de service Microsoft Entra. Une fois que vous avez créé le principal de service, veillez à récupérer l’ID d’application et la clé d’authentification à l’aide des instructions de l’article lié. Vous avez besoin de ces valeurs plus loin dans ce tutoriel. Vérifiez également que le principal de service est membre du rôle Contributeur de l’abonnement ou du groupe de ressources dans lequel le cluster est créé. Pour obtenir des instructions pour récupérer les valeurs requises et attribuer les rôles appropriés, consultez Créer un principal de service Microsoft Entra.

Créer des objets Azure préliminaires

Dans cette section, vous allez créer différents objets qui seront utilisés pour le cluster HDInsight que vous créez à la demande. Le compte de stockage créé contient l’exemple de script HiveQL, partitionweblogs.hqlque vous utilisez pour simuler un exemple de travail Apache Hive qui s’exécute sur le cluster.

Cette section utilise un script Azure PowerShell pour créer le compte de stockage et copier sur les fichiers requis dans le compte de stockage. L’exemple de script Azure PowerShell dans cette section effectue les tâches suivantes :

  1. Se connecte à Azure.
  2. Crée un groupe de ressources Azure.
  3. Crée un compte de stockage Azure.
  4. Crée un conteneur blob dans le compte de stockage
  5. Copie l’exemple de script HiveQL (partitionweblogs.hql) dans le conteneur d’objets blob. L’exemple de script est déjà disponible dans un autre conteneur d’objets blob public. Le script PowerShell ci-dessous effectue une copie de ces fichiers dans le compte stockage Azure qu’il crée.

Créer un compte de stockage et copier des fichiers

Important

Spécifiez les noms du groupe de ressources Azure et du compte de stockage Azure qui seront créés par le script. Notez le nom du groupe de ressources, le nom du compte de stockage et la clé du compte de stockage sorties par le script. Vous en avez besoin dans la section suivante.

$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

Vérifier le compte de stockage

  1. Connectez-vous au portail Azure.
  2. À gauche, accédez à Tous les services>Général>Groupes de ressources.
  3. Sélectionnez le nom du groupe de ressources que vous avez créé dans votre script PowerShell. Utilisez le filtre si vous avez trop de groupes de ressources répertoriés.
  4. Dans la vue Vue d’ensemble , vous voyez une ressource répertoriée, sauf si vous partagez le groupe de ressources avec d’autres projets. Cette ressource est le compte de stockage portant le nom que vous avez spécifié précédemment. Sélectionnez le nom du compte de stockage.
  5. Sélectionnez la vignette Conteneurs .
  6. Sélectionnez le conteneur adfgetstarted . Vous voyez un dossier appelé hivescripts.
  7. Ouvrez le dossier et vérifiez qu’il contient l’exemple de fichier de script, partitionweblogs.hql.

Comprendre l’activité Azure Data Factory

Azure Data Factory orchestre et automatise le déplacement et la transformation des données. Azure Data Factory peut créer un cluster HDInsight Hadoop juste-à-temps pour traiter une tranche de données d’entrée et supprimer le cluster une fois le traitement terminé.

Dans Azure Data Factory, une fabrique de données peut avoir un ou plusieurs pipelines de données. Un pipeline de données a une ou plusieurs activités. Il existe deux types d’activités :

  • Activités de déplacement des données. Vous utilisez des activités de déplacement de données pour déplacer des données d’un magasin de données source vers un magasin de données de destination.
  • Activités de transformation de données. Vous utilisez des activités de transformation de données pour transformer/traiter des données. L’activité Hive HDInsight est l’une des activités de transformation prises en charge par Data Factory. Vous utilisez l’activité de transformation Hive dans ce tutoriel.

Dans cet article, vous allez configurer l’activité Hive pour créer un cluster HDInsight Hadoop à la demande. Lorsque l’activité s’exécute pour traiter les données, voici ce qui se passe :

  1. Un cluster HDInsight Hadoop est créé automatiquement pour vous permettre de traiter la tranche.

  2. Les données d’entrée sont traitées en exécutant un script HiveQL sur le cluster. Dans ce tutoriel, le script HiveQL associé à l’activité hive effectue les actions suivantes :

    • Utilise la table existante (hivesampletable) pour créer une autre table HiveSampleOut.
    • Remplit la table HiveSampleOut avec uniquement des colonnes spécifiques du hivesampletable d’origine.
  3. Le cluster Hadoop HDInsight est supprimé une fois le traitement terminé et le cluster est inactif pendant la durée configurée (paramètre timeToLive). Si la tranche de données suivante est disponible pour le traitement avec ce temps d’inactivité timeToLive, le même cluster est utilisé pour traiter la tranche.

Créer une fabrique de données

  1. Connectez-vous au portail Azure.

  2. Dans le menu de gauche, accédez à + Create a resource>Analytics>Data Factory.

    Azure Data Factory sur le portail.

  3. Entrez ou sélectionnez les valeurs suivantes pour la vignette Nouvelle fabrique de données :

    Propriété Valeur
    Nom Entrez un nom pour l'usine de données. Ce nom doit être globalement unique.
    Version Conservez V2.
    Subscription Sélectionnez votre abonnement Azure.
    groupe de ressources Sélectionnez le groupe de ressources que vous avez créé à l’aide du script PowerShell.
    Emplacement L’emplacement est automatiquement défini sur l’emplacement que vous avez spécifié lors de la création du groupe de ressources précédemment. Pour ce didacticiel, l’emplacement est défini sur USA Est.
    Activer GIT Décochez cette case.

    Créez Azure Data Factory à l’aide du portail Azure.

  4. Cliquez sur Créer. La création d’une fabrique de données peut prendre entre 2 et 4 minutes.

  5. Une fois la fabrique de données créée, vous recevrez une notification de déploiement réussie avec un bouton Accéder à la ressource . Sélectionnez Accéder à la ressource pour ouvrir la vue Par défaut de Data Factory.

  6. Sélectionnez Author &Monitor pour lancer le portail de création et de supervision Azure Data Factory.

    Vue d’ensemble du portail Azure Data Factory.

Créez des services liés

Dans cette section, vous créez deux services liés dans votre fabrique de données.

  • Un service lié au stockage Azure relie un compte de stockage Azure à la fabrique de données. Ce stockage est utilisé par le cluster HDInsight à la demande. Il contient également le script Hive exécuté sur le cluster.
  • Un service lié HDInsight à la demande. Azure Data Factory crée automatiquement un cluster HDInsight et exécute le script Hive. Il supprime ensuite le cluster HDInsight une fois que le cluster inactif pendant une période préconfigurée.

Créer un service lié de stockage Azure

  1. Dans le volet gauche de la page Page de démarrage, sélectionnez l'icône Auteur.

    Créez un service lié Azure Data Factory.

  2. Sélectionnez Connexions dans le coin inférieur gauche de la fenêtre, puis sélectionnez +Nouveau.

    Créez des connexions dans Azure Data Factory.

  3. Dans la boîte de dialogue Nouveau service lié , sélectionnez Stockage Blob Azure , puis Continue.

    Créer un service lié de Stockage Azure pour Data Factory.

  4. Fournissez les valeurs suivantes pour le service lié de stockage :

    Propriété Valeur
    Nom Saisissez HDIStorageLinkedService.
    Abonnement Azure Sélectionnez votre abonnement dans la liste déroulante.
    Nom du compte de stockage Sélectionnez le compte stockage Azure que vous avez créé dans le cadre du script PowerShell.

    Sélectionnez Tester la connexion et, si elle réussit, sélectionnez Créer.

    Indiquez le nom du service lié Stockage Azure.

Créer un service lié HDInsight à la demande

  1. Cliquez de nouveau sur le bouton + Nouveau pour créer un nouveau service lié.

  2. Dans la fenêtre Nouveau service lié , sélectionnez l’onglet Calcul .

  3. Sélectionnez Azure HDInsight, puis continuez.

    Créez un service lié HDInsight pour Azure Data Factory.

  4. Dans la fenêtre Nouveau service lié , entrez les valeurs suivantes et laissez le reste comme valeur par défaut :

    Propriété Valeur
    Nom Saisissez HDInsightLinkedService.
    Type Sélectionnez HDInsight à la demande.
    Service lié stockage Azure Sélectionnez HDIStorageLinkedService.
    Type de cluster Sélectionner hadoop
    Durée de vie Indiquez la durée pendant laquelle vous souhaitez que le cluster HDInsight soit disponible avant d’être supprimé automatiquement.
    ID de principal de service Fournissez l’ID d’application du principal de service Microsoft Entra que vous avez créé dans le cadre des conditions préalables.
    Clé du service principal Fournissez la clé d’authentification pour le principal du service Microsoft Entra.
    Préfixe du nom du cluster Fournissez une valeur qui sera ajoutée en préfixe à tous les types de clusters créés par le Data Factory.
    Subscription Sélectionnez votre abonnement dans la liste déroulante.
    Sélection du groupe de ressources Sélectionnez le groupe de ressources que vous avez créé dans le cadre du script PowerShell que vous avez utilisé précédemment.
    Type de système d’exploitation/Nom d’utilisateur SSH du cluster Entrez un nom d’utilisateur SSH, généralement sshuser.
    Type de système d’exploitation/Mot de passe SSH du cluster Fournir un mot de passe pour l’utilisateur SSH
    Type de système d’exploitation/Nom d’utilisateur du cluster Entrez un nom d’utilisateur de cluster, généralement admin.
    Type de système d’exploitation/Mot de passe du cluster Fournissez un mot de passe pour l’utilisateur du cluster.

    Sélectionnez ensuite Créer.

    Fournissez des valeurs pour le service lié HDInsight.

Créer une chaîne de traitement

  1. Sélectionnez le + bouton (plus), puis sélectionnez Pipeline.

    Créez un pipeline dans Azure Data Factory.

  2. Dans la boîte à outils Activités, déployez HDInsight et faites glisser l'activité Hive sur la surface du concepteur de pipeline. Sous l’onglet Général , indiquez un nom pour l’activité.

    Ajoutez des activités au pipeline Data Factory.

  3. Vérifiez que l'activité Hive est sélectionnée, puis sélectionnez l'onglet Cluster HDI. Dans la liste déroulante service lié HDInsight, sélectionnez le service lié que vous avez créé précédemment, HDInsightLinkedService, pour HDInsight.

    Fournissez les détails sur le cluster HDInsight pour le pipeline.

  4. Sélectionnez l’onglet Script et effectuez les étapes suivantes :

    1. Pour Script Linked Service, sélectionnez HDIStorageLinkedService dans la liste déroulante. Cette valeur est le service lié de stockage que vous avez créé précédemment.

    2. Pour chemin d’accès au fichier, sélectionnez Parcourir le stockage et accédez à l’emplacement où l’exemple de script Hive est disponible. Si vous avez exécuté le script PowerShell précédemment, cet emplacement doit être adfgetstarted/hivescripts/partitionweblogs.hql.

      Fournissez les détails du script Hive pour le pipeline.

    3. Sous Paramètres avancés>, sélectionnezAuto-fill from script . Cette option recherche les paramètres du script Hive qui nécessitent des valeurs au moment de l’exécution.

    4. Dans la zone de texte valeur , ajoutez le dossier existant au format wasbs://adfgetstarted@<StorageAccount>.blob.core.windows.net/outputfolder/. Le chemin d'accès respecte la casse. Ce chemin d’accès est l’emplacement où la sortie du script sera stockée. Le wasbs schéma est nécessaire, car les comptes de stockage disposent désormais d’un transfert sécurisé activé par défaut.

      Fournissez des paramètres pour le script Hive.

  5. Sélectionnez Valider pour valider le pipeline. Sélectionnez le bouton >> (lèche droite) pour fermer la fenêtre de validation.

    Validez le pipeline Azure Data Factory.

  6. Enfin, sélectionnez Publier tout pour publier les artefacts dans Azure Data Factory.

    Publiez le pipeline Azure Data Factory.

Déclencher un pipeline

  1. Dans la barre d’outils de l’aire du concepteur, sélectionnez Ajouter un déclencheur>Déclencher maintenant.

    Déclenchez le pipeline Azure Data Factory.

  2. Sélectionnez OK dans la barre latérale contextuelle.

Surveiller un pipeline

  1. Basculez vers l’onglet Surveiller sur la gauche. Vous voyez une exécution du pipeline dans la liste Exécutions du pipeline. Notez l’état de l’exécution dans la colonne État.

    Surveillez le pipeline Azure Data Factory.

  2. Sélectionnez Actualiser pour actualiser l’état.

  3. Vous pouvez également sélectionner l’icône Afficher les exécutions d’activité pour afficher l’exécution d’activité associée au pipeline. Dans la capture d’écran ci-dessous, vous ne voyez qu’une seule activité s’exécuter, car il n’y a qu’une seule activité dans le pipeline que vous avez créé. Pour revenir à l’affichage précédent, sélectionnez Pipelines en haut de la page.

    Surveillez l’activité du pipeline Azure Data Factory.

Vérifier la sortie

  1. Pour vérifier la sortie, dans le portail Azure, accédez au compte de stockage que vous avez utilisé pour ce didacticiel. Vous devez voir les dossiers ou conteneurs suivants :

    • Vous voyez un emplacement adfgerstarted/outputfolder qui contient la sortie du script Hive qui a été exécuté dans le cadre du pipeline.

    • Vous voyez un conteneur adfhdidatafactory-linked-service-name-timestamp<><>. Ce conteneur est l’emplacement de stockage par défaut du cluster HDInsight qui a été créé dans le cadre de l’exécution du pipeline.

    • Vous voyez un conteneur adfjobs qui contient les journaux des travaux Azure Data Factory.

      Vérifiez la sortie du pipeline Azure Data Factory.

Nettoyer les ressources

Avec la création du cluster HDInsight à la demande, vous n’avez pas besoin de supprimer explicitement le cluster HDInsight. Le cluster est supprimé en fonction de la configuration que vous avez fournie lors de la création du pipeline. Même après la suppression du cluster, les comptes de stockage associés au cluster continuent d’exister. Ce comportement est par conception afin que vous puissiez conserver vos données intactes. Toutefois, si vous ne souhaitez pas conserver les données, vous pouvez supprimer le compte de stockage que vous avez créé.

Vous pouvez également supprimer l’ensemble du groupe de ressources que vous avez créé pour ce didacticiel. Ce processus supprime le compte de stockage et Azure Data Factory que vous avez créés.

Supprimer le groupe de ressources

  1. Connectez-vous au portail Azure.

  2. Sélectionnez Groupes de ressources dans le volet gauche.

  3. Sélectionnez le nom du groupe de ressources que vous avez créé dans votre script PowerShell. Utilisez le filtre si vous avez trop de groupes de ressources répertoriés. Il ouvre le groupe de ressources.

  4. Dans la vignette Ressources, vous aurez le compte de stockage par défaut et le Data Factory listés, sauf si vous partagez le groupe de ressources avec d’autres projets.

  5. Sélectionnez Supprimer le groupe de ressources. Cela supprime le compte de stockage et les données stockées dans le compte de stockage.

    Le portail Azure supprime le groupe de ressources.

  6. Entrez le nom du groupe de ressources pour confirmer la suppression, puis sélectionnez Supprimer.

Étapes suivantes

Dans cet article, vous avez appris à utiliser Azure Data Factory pour créer un cluster HDInsight à la demande et exécuter des travaux Apache Hive. Passez à l’article suivant pour découvrir comment créer des clusters HDInsight avec une configuration personnalisée.