Utiliser Azure Data Factory pour migrer des données d'un cluster Hadoop local vers le service Stockage AzureUse Azure Data Factory to migrate data from an on-premises Hadoop cluster to Azure Storage

S’APPLIQUE À : Azure Data Factory Azure Synapse Analytics

Azure Data Factory fournit un mécanisme performant, robuste et économique pour migrer des données à grande échelle d'un système HDFS local vers le service Stockage Blob Azure ou Azure Data Lake Storage Gen2.Azure Data Factory provides a performant, robust, and cost-effective mechanism for migrating data at scale from on-premises HDFS to Azure Blob storage or Azure Data Lake Storage Gen2.

Data Factory propose deux approches de base pour la migration de données d'un système HDFS local vers Azure.Data Factory offers two basic approaches for migrating data from on-premises HDFS to Azure. Vous pouvez sélectionner l'approche en fonction de votre scénario.You can select the approach based on your scenario.

  • Mode DistCp de Data Factory (recommandé) : Dans Data Factory, vous pouvez utiliser le mode DistCp (copie distribuée) pour copier des fichiers tels quels sur le service Stockage Blob Azure (copie intermédiaire comprise) ou Azure Data Lake Store Gen2.Data Factory DistCp mode (recommended): In Data Factory, you can use DistCp (distributed copy) to copy files as-is to Azure Blob storage (including staged copy) or Azure Data Lake Store Gen2. Utilisez Data Factory intégré avec DistCp pour tirer parti d'un puissant cluster existant et obtenir le meilleur débit de copie.Use Data Factory integrated with DistCp to take advantage of an existing powerful cluster to achieve the best copy throughput. Vous bénéficiez également d'une planification flexible et d'une expérience de surveillance unifiée à partir de Data Factory.You also get the benefit of flexible scheduling and a unified monitoring experience from Data Factory. Selon la configuration de Data Factory, l'activité de copie construit automatiquement une commande DistCp, envoie les données à votre cluster Hadoop, puis surveille l'état de la copie.Depending on your Data Factory configuration, copy activity automatically constructs a DistCp command, submits the data to your Hadoop cluster, and then monitors the copy status. Nous recommandons le mode DistCp de Data Factory pour la migration de données d'un cluster Hadoop local vers Azure.We recommend Data Factory DistCp mode for migrating data from an on-premises Hadoop cluster to Azure.
  • Mode Runtime d'intégration native de Data Factory : DistCp ne s'applique pas à tous les scénarios.Data Factory native integration runtime mode: DistCp isn't an option in all scenarios. Par exemple, dans un environnement de Réseaux virtuels Azure, l'outil DistCp ne prend pas en charge le peering privé Azure ExpressRoute avec un point de terminaison de réseau virtuel Stockage Azure.For example, in an Azure Virtual Networks environment, the DistCp tool doesn't support Azure ExpressRoute private peering with an Azure Storage virtual network endpoint. En outre, dans certains cas, il est préférable de ne pas utiliser votre cluster Hadoop existant comme moteur pour la migration des données afin de ne pas surcharger votre cluster, car cela pourrait nuire aux performances des travaux ETL existants.In addition, in some cases, you don't want to use your existing Hadoop cluster as an engine for migrating data so you don't put heavy loads on your cluster, which might affect the performance of existing ETL jobs. Utilisez plutôt la fonctionnalité native du runtime d'intégration de Data Factory comme moteur pour copier les données du système HDFS local vers Azure.Instead, you can use the native capability of the Data Factory integration runtime as the engine that copies data from on-premises HDFS to Azure.

Cet article fournit les informations suivantes sur les deux approches :This article provides the following information about both approaches:

  • PerformancesPerformance
  • Résilience de copieCopy resilience
  • Sécurité du réseauNetwork security
  • Architecture de solution de haut niveauHigh-level solution architecture
  • Meilleures pratiques en matière d’implémentationImplementation best practices

PerformancesPerformance

En mode DistCp de Data Factory, le débit est le même que si vous utilisiez l'outil DistCp indépendamment.In Data Factory DistCp mode, throughput is the same as if you use the DistCp tool independently. Le mode DistCp de Data Factory optimise la capacité de votre cluster Hadoop existant.Data Factory DistCp mode maximizes the capacity of your existing Hadoop cluster. Vous pouvez utiliser DistCp pour une copie volumineuse inter ou intra-cluster.You can use DistCp for large inter-cluster or intra-cluster copying.

DistCp utilise MapReduce pour sa distribution, pour la gestion et la récupération des erreurs, et pour la génération de rapports.DistCp uses MapReduce to effect its distribution, error handling and recovery, and reporting. Il développe une liste de fichiers et de répertoires en entrée pour le mappage des tâches.It expands a list of files and directories into input for task mapping. Chaque tâche copie une partition de fichiers spécifiée dans la liste source.Each task copies a file partition that's specified in the source list. Vous pouvez utiliser Data Factory intégré avec DistCp pour créer des pipelines afin d'exploiter pleinement la bande passante de votre réseau, ainsi que les IOPS et la bande passante de stockage dans le but d'optimiser le débit de déplacement des données de votre environnement.You can use Data Factory integrated with DistCp to build pipelines to fully utilize your network bandwidth, storage IOPS, and bandwidth to maximize data movement throughput for your environment.

Le mode Runtime d'intégration native de Data Factory permet également le parallélisme à différents niveaux.Data Factory native integration runtime mode also allows parallelism at different levels. Vous pouvez utiliser le parallélisme pour exploiter pleinement votre bande passante réseau, ainsi que les IOPS et la bande passante de stockage afin d'optimiser le débit de déplacement des données :You can use parallelism to fully utilize your network bandwidth, storage IOPS, and bandwidth to maximize data movement throughput:

  • Une seule activité de copie peut tirer parti de plusieurs ressources de calcul évolutives.A single copy activity can take advantage of scalable compute resources. Avec un runtime d'intégration auto-hébergé, vous pouvez effectuer un scale-up manuel de la machine ou un scale-out vers plusieurs machines (jusqu'à quatre nœuds).With a self-hosted integration runtime, you can manually scale up the machine or scale out to multiple machines (up to four nodes). Une activité de copie unique partitionne son ensemble de fichiers sur tous les nœuds.A single copy activity partitions its file set across all nodes.
  • Une activité de copie unique lit et écrit dans le magasin de données à l'aide de plusieurs conversations.A single copy activity reads from and writes to the data store by using multiple threads.
  • Le flux de contrôle Data Factory peut démarrer plusieurs activités de copie en parallèle.Data Factory control flow can start multiple copy activities in parallel. Par exemple, vous pouvez utiliser une boucle ForEach.For example, you can use a For Each loop.

Pour plus d'informations, consultez le Guide de performance des activités de copie.For more information, see the copy activity performance guide.

RésilienceResilience

En mode DistCp de Data Factory, vous pouvez utiliser différents paramètres de ligne de commande DistCp (par exemple, -i pour ignorer les échecs, ou -update pour écrire des données lorsque le fichier source et le fichier de destination sont de taille différente) afin d'atteindre différents niveaux de résilience.In Data Factory DistCp mode, you can use different DistCp command-line parameters (For example, -i, ignore failures or -update, write data when source file and destination file differ in size) for different levels of resilience.

En mode Runtime d'intégration native de Data Factory, lors de l'exécution d'une activité de copie unique, Data Factory dispose d'un mécanisme de nouvelle tentative intégré.In the Data Factory native integration runtime mode, in a single copy activity run, Data Factory has a built-in retry mechanism. Il peut gérer un certain niveau d'échecs passagers dans les magasins de données ou dans le réseau sous-jacent.It can handle a certain level of transient failures in the data stores or in the underlying network.

Lors d'une copie binaire d'un système HDFS local vers le service Stockage Blob et d'un système HDFS local vers Data Lake Store Gen2, Data Factory crée automatiquement des points de contrôle à grande échelle.When doing binary copying from on-premises HDFS to Blob storage and from on-premises HDFS to Data Lake Store Gen2, Data Factory automatically performs checkpointing to a large extent. Si l'exécution d'une activité de copie échoue ou expire, lors d'une nouvelle tentative (assurez-vous que le nombre de nouvelles tentatives est > 1), la copie reprend à partir du dernier point d'échec au lieu de commencer depuis le début.If a copy activity run fails or times out, on a subsequent retry (make sure that retry count is > 1), the copy resumes from the last failure point instead of starting at the beginning.

Sécurité du réseauNetwork security

Par défaut, Data Factory transfère les données du système HDFS local vers le service Stockage Blob ou Azure Data Lake Storage Gen2 à l'aide d'une connexion chiffrée via le protocole HTTPS.By default, Data Factory transfers data from on-premises HDFS to Blob storage or Azure Data Lake Storage Gen2 by using an encrypted connection over HTTPS protocol. Le protocole HTTPS assure le chiffrement des données en transit et empêche les écoutes clandestines et les attaques de l’intercepteur.HTTPS provides data encryption in transit and prevents eavesdropping and man-in-the-middle attacks.

Si vous ne souhaitez pas que les données soient transférées sur l'Internet public, pour plus de sécurité, vous pouvez également les transférer sur un lien de peering privé via ExpressRoute.Alternatively, if you don't want data to be transferred over the public internet, for higher security, you can transfer data over a private peering link via ExpressRoute.

Architecture de solutionSolution architecture

Cette image illustre une migration de données via l'Internet public :This image depicts migrating data over the public internet:

Diagramme illustrant l'architecture de la solution pour la migration de données sur un réseau public

  • Dans cette architecture, les données sont transférées en toute sécurité à l'aide du protocole HTTPS via l'Internet public.In this architecture, data is transferred securely by using HTTPS over the public internet.
  • Dans un environnement de réseau public, nous vous recommandons d'utiliser le mode DistCp de Data Factory.We recommend using Data Factory DistCp mode in a public network environment. Vous pouvez tirer parti d'un puissant cluster existant pour obtenir le meilleur débit de copie.You can take advantage of a powerful existing cluster to achieve the best copy throughput. Vous bénéficiez également d'une planification flexible et d'une expérience de surveillance unifiée à partir de Data Factory.You also get the benefit of flexible scheduling and unified monitoring experience from Data Factory.
  • Pour cette architecture, vous devez installer le runtime d'intégration auto-hébergé de Data Factory sur un ordinateur Windows derrière un pare-feu d'entreprise pour soumettre la commande DistCp à votre cluster Hadoop et surveiller l'état de la copie.For this architecture, you must install the Data Factory self-hosted integration runtime on a Windows machine behind a corporate firewall to submit the DistCp command to your Hadoop cluster and to monitor the copy status. Comme l'ordinateur n'est pas le moteur qui va déplacer les données (à des fins de contrôle uniquement), la capacité de la machine n'a aucun impact sur le débit du déplacement des données.Because the machine isn't the engine that will move data (for control purpose only), the capacity of the machine doesn't affect the throughput of data movement.
  • Les paramètres existants de la commande DistCp sont pris en charge.Existing parameters from the DistCp command are supported.

Cette image illustre une migration de données via un lien privé :This image depicts migrating data over a private link:

Diagramme illustrant l'architecture de la solution pour la migration de données sur un réseau privé

  • Dans cette architecture, les données sont migrées sur un lien de peering privé via Azure ExpressRoute.In this architecture, data is migrated over a private peering link via Azure ExpressRoute. Les données ne transitent jamais par l'Internet public.Data never traverses over the public internet.
  • L'outil DistCp ne prend pas en charge le peering privé ExpressRoute avec un point de terminaison de réseau virtuel Stockage Azure.The DistCp tool doesn't support ExpressRoute private peering with an Azure Storage virtual network endpoint. Nous vous recommandons d'utiliser la fonctionnalité native de Data Factory via le runtime d'intégration pour migrer les données.We recommend that you use Data Factory's native capability via the integration runtime to migrate the data.
  • Pour cette architecture, vous devez installer le runtime d'intégration auto-hébergé de Data Factory sur une machine virtuelle Windows de votre réseau virtuel Azure.For this architecture, you must install the Data Factory self-hosted integration runtime on a Windows VM in your Azure virtual network. Vous pouvez effectuer manuellement un scale-up de vos machines virtuelles ou effectuer un scale-out sur plusieurs machines virtuelles pour utiliser pleinement votre réseau et vos IOPS ou bande passante de stockage.You can manually scale up your VM or scale out to multiple VMs to fully utilize your network and storage IOPS or bandwidth.
  • La configuration de démarrage recommandée pour chaque machine virtuelle Azure (avec le runtime d'intégration auto-hébergé de Data Factory installé) est Standard_D32s_v3 avec 32 processeurs virtuels et 128 Go de mémoire.The recommended configuration to start with for each Azure VM (with the Data Factory self-hosted integration runtime installed) is Standard_D32s_v3 with a 32 vCPU and 128 GB of memory. Vous pouvez surveiller l'utilisation de l'UC et de la mémoire de la machine virtuelle pendant la migration des données afin de déterminer si vous devez monter en puissance pour améliorer les performances de la machine virtuelle ou descendre en puissance pour réduire les coûts.You can monitor the CPU and memory usage of the VM during data migration to see whether you need to scale up the VM for better performance or to scale down the VM to reduce cost.
  • Vous pouvez également effectuer un scale-out en associant jusqu'à quatre nœuds de machine virtuelle à un seul runtime d'intégration auto-hébergé.You can also scale out by associating up to four VM nodes with a single self-hosted integration runtime. Une seule tâche de copie exécutée sur un runtime d'intégration auto-hébergé partitionne automatiquement le jeu de fichiers et tire parti de tous les nœuds de machine virtuelle pour copier les fichiers en parallèle.A single copy job running against a self-hosted integration runtime automatically partitions the file set and makes use of all VM nodes to copy the files in parallel. Pour une haute disponibilité, nous vous recommandons de commencer avec deux nœuds de machine virtuelle afin d'éviter un scénario de point de défaillance unique pendant la migration des données.For high availability, we recommend that you start with two VM nodes to avoid a single-point-of-failure scenario during data migration.
  • Lorsque vous utilisez cette architecture, la migration initiale des données d'instantané et la migration des données delta sont à votre disposition.When you use this architecture, initial snapshot data migration and delta data migration are available to you.

Meilleures pratiques en matière d’implémentationImplementation best practices

Nous vous recommandons de suivre ces meilleures pratiques lors de l'implémentation de votre migration de données.We recommend that you follow these best practices when you implement your data migration.

Authentification et gestion des informations d’identificationAuthentication and credential management

Migration initiale des données d’instantanéInitial snapshot data migration

En mode DistCp de Data Factory, vous pouvez créer une activité de copie pour soumettre la commande DistCp et utiliser différents paramètres pour contrôler le comportement initial de migration des données.In Data Factory DistCp mode, you can create one copy activity to submit the DistCp command and use different parameters to control initial data migration behavior.

En mode Runtime d'intégration native de Data Factory, nous vous recommandons d'avoir recours à une partition de données, en particulier lorsque vous migrez plus de 10 To de données.In Data Factory native integration runtime mode, we recommend data partition, especially when you migrate more than 10 TB of data. Pour partitionner les données, utilisez les noms de dossier du système HDFS.To partition the data, use the folder names on HDFS. Chaque travail de copie Data Factory peut ensuite copier une partition de dossiers à la fois.Then, each Data Factory copy job can copy one folder partition at a time. Vous pouvez exécuter plusieurs tâches de copie Data Factory simultanément pour un meilleur débit.You can run multiple Data Factory copy jobs concurrently for better throughput.

Si l'un des travaux de copie échoue en raison d'un problème temporaire de réseau ou de magasin de données, vous pouvez réexécuter ce travail afin de recharger la partition correspondante à partir du système HDFS.If any of the copy jobs fail due to network or data store transient issues, you can rerun the failed copy job to reload that specific partition from HDFS. Les autres travaux de copie qui chargent d'autres partitions ne sont pas affectés.Other copy jobs that are loading other partitions aren't affected.

Migration des données DeltaDelta data migration

En mode DistCp de Data Factory, vous pouvez utiliser le paramètre de ligne de commande DistCp -update, afin d'écrire des données lorsque le fichier source et le fichier de destination sont de taille différente, pour la migration des données delta.In Data Factory DistCp mode, you can use the DistCp command-line parameter -update, write data when source file and destination file differ in size, for delta data migration.

En mode d'intégration native de Data Factory, le moyen le plus efficace d'identifier les fichiers nouveaux ou modifiés à partir du système HDFS consiste à utiliser une convention d'affectation de noms partitionnée.In Data Factory native integration mode, the most performant way to identify new or changed files from HDFS is by using a time-partitioned naming convention. Lorsque les données de votre système HDFS ont été partitionnées avec des informations de tranche temporelle dans le nom du fichier ou du dossier (par exemple, /aaaa/mm/jj/fichier.csv ), votre pipeline peut facilement identifier les fichiers et dossiers à copier de façon incrémentielle.When your data in HDFS has been time-partitioned with time slice information in the file or folder name (for example, /yyyy/mm/dd/file.csv), your pipeline can easily identify which files and folders to copy incrementally.

Sinon, si les données de votre système HDFS ne sont pas partitionnées, Data Factory peut identifier les fichiers nouveaux ou modifiés à l'aide de leur valeur LastModifiedDate.Alternatively, if your data in HDFS isn't time-partitioned, Data Factory can identify new or changed files by using their LastModifiedDate value. Data Factory analyse tous les fichiers du système HDFS et ne copie que les fichiers nouveaux et mis à jour dont l'horodatage correspondant à la dernière modification est supérieur à une valeur définie.Data Factory scans all the files from HDFS and copies only new and updated files that have a last modified timestamp that's greater than a set value.

En présence d'un grand nombre de fichiers dans le système HDFS, l'analyse initiale des fichiers peut prendre beaucoup de temps, quel que soit le nombre de fichiers correspondant à la condition de filtre.If you have a large number of files in HDFS, the initial file scanning might take a long time, regardless of how many files match the filter condition. Dans ce scénario, nous vous recommandons de commencer par partitionner les données avec la même partition que celle utilisée pour la migration initiale des instantanés.In this scenario, we recommend that you first partition the data by using the same partition you used for the initial snapshot migration. L'analyse des fichiers peut ensuite être effectuée en parallèle.Then, file scanning can occur in parallel.

Estimation du prixEstimate price

Considérez le pipeline suivant pour la migration de données du système HDFS vers le service Stockage Blob Azure :Consider the following pipeline for migrating data from HDFS to Azure Blob storage:

Diagramme illustrant le pipeline des tarifs

Basons-nous sur les informations suivantes :Let's assume the following information:

  • Le volume total de données est de 1 Po.Total data volume is 1 PB.
  • Vous migrez des données à l'aide du mode Runtime d'intégration native de Data Factory.You migrate data by using the Data Factory native integration runtime mode.
  • 1 Po est divisé en 1 000 partitions et chaque copie déplace une partition.1 PB is divided into 1,000 partitions and each copy moves one partition.
  • Chaque activité de copie est configurée avec un runtime d'intégration auto-hébergé associé à quatre machines et atteignant un débit de 500 Mbits/s.Each copy activity is configured with one self-hosted integration runtime that's associated with four machines and which achieves 500-MBps throughput.
  • L'accès concurrentiel ForEach est défini sur 4 et le débit agrégé est de 2 Gbits/s.ForEach concurrency is set to 4 and aggregate throughput is 2 GBps.
  • Au total, la migration prend 146 heures.In total, it takes 146 hours to complete the migration.

Voici le prix estimé en fonction de nos hypothèses :Here's the estimated price based on our assumptions:

Tableau indiquant les calculs de prix

Notes

Il s’agit d’un exemple de tarification hypothétique.This is a hypothetical pricing example. Vos tarifs réels dépendent du débit réel dans votre environnement.Your actual pricing depends on the actual throughput in your environment. Le prix d'une machine virtuelle Azure Windows (avec le runtime d'intégration auto-hébergé installé) n'est pas inclus.The price for an Azure Windows VM (with self-hosted integration runtime installed) isn't included.

Références supplémentairesAdditional references

Étapes suivantesNext steps