Verwenden von Azure Data Factory zum Migrieren von Daten von einem lokalen Hadoop-Cluster zu Azure StorageUse Azure Data Factory to migrate data from an on-premises Hadoop cluster to Azure Storage

GILT FÜR: Azure Data Factory Azure Synapse Analytics

Azure Data Factory stellt einen leistungsstarken, stabilen und kostengünstigen Mechanismus bereit, um Daten bedarfsabhängig vom lokalen HDFS zu Azure Blob Storage oder Azure Data Lake Storage Gen2 zu migrieren.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 bietet zwei grundlegende Methoden, um Daten vom lokalen HDFS zu Azure zu migrieren.Data Factory offers two basic approaches for migrating data from on-premises HDFS to Azure. Sie können die jeweilige Methode basierend auf Ihrem Szenario auswählen.You can select the approach based on your scenario.

  • DistCp-Modus von Data Factory (empfohlen): In Data Factory können Sie DistCp (Distributed Copy, verteiltes Kopieren) verwenden, um Dateien unverändert in Azure Blob Storage (einschließlich gestaffelten Kopierens) oder Azure Data Lake Store Gen2 zu kopieren.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. Verwenden Sie in Data Factory integriertes DistCp, um einen vorhandenen leistungsfähigen Cluster zu nutzen und einen optimalen Kopierdurchsatz zu erzielen.Use Data Factory integrated with DistCp to take advantage of an existing powerful cluster to achieve the best copy throughput. Außerdem profitieren Sie von der flexiblen Planung und einer einheitlichen Überwachung von Data Factory.You also get the benefit of flexible scheduling and a unified monitoring experience from Data Factory. Abhängig von Ihrer Data Factory-Konfiguration erstellt die Kopieraktivität automatisch einen DistCp-Befehl, sendet die Daten an den Hadoop-Cluster und überwacht dann den Kopierstatus.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. Der DistCp-Modus von Data Factory wird zum Migrieren von Daten von einem lokalen Hadoop-Cluster zu Azure empfohlen.We recommend Data Factory DistCp mode for migrating data from an on-premises Hadoop cluster to Azure.
  • Nativer Integration Runtime-Modus in Data Factory: DistCp kann nicht in allen Szenarien verwendet werden.Data Factory native integration runtime mode: DistCp isn't an option in all scenarios. Beispielsweise unterstützt das DistCp-Tool in einer Azure Virtual Network-Umgebung nicht das private ExpressRoute-Peering mit einem virtuellen Azure Storage-Netzwerkendpunkt.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. In einigen Fällen soll außerdem nicht der vorhandene Hadoop-Cluster als Engine zum Migrieren von Daten verwendet werden, damit sich keine hohen Lasten für den Cluster ergeben, da sich dies auf die Leistung vorhandener ETL-Aufträge auswirken kann.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. Stattdessen können Sie die native Integration Runtime-Funktion in Data Factory als Engine verwenden, mit der Daten vom lokalen HDFS in Azure kopiert werden.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.

Dieser Artikel enthält die folgenden Informationen zu beiden Methoden:This article provides the following information about both approaches:

  • LeistungPerformance
  • Resilienz beim KopierenCopy resilience
  • NetzwerksicherheitNetwork security
  • Allgemeine LösungsarchitekturHigh-level solution architecture
  • Bewährte Methoden für die ImplementierungImplementation best practices

LeistungPerformance

Im DistCp-Modus von Data Factory entspricht der Durchsatz dem der unabhängigen Verwendung des DistCp-Tools.In Data Factory DistCp mode, throughput is the same as if you use the DistCp tool independently. Mit dem DistCp-Modus von Data Factory wird die Kapazität des vorhandenen Hadoop-Clusters maximiert.Data Factory DistCp mode maximizes the capacity of your existing Hadoop cluster. Sie können DistCp für umfangreiche Kopiervorgänge innerhalb von und zwischen Clustern verwenden.You can use DistCp for large inter-cluster or intra-cluster copying.

DistCp verwendet MapReduce, um die Verteilung, die Fehlerbehandlung und -behebung sowie die Berichterstellung zu steuern.DistCp uses MapReduce to effect its distribution, error handling and recovery, and reporting. Das Tool erweitert eine Liste von Dateien und Verzeichnissen in eine Eingabe für die Aufgabenzuordnung.It expands a list of files and directories into input for task mapping. Mit jeder Aufgabe wird jeweils eine in der Quellliste angegebene Dateipartition kopiert.Each task copies a file partition that's specified in the source list. Durch Verwendung von Data Factory mit Integration in DistCp können Sie Pipelines erstellen, um die Netzwerkbandbreite sowie IOPS und Bandbreite des Speichers in vollem Umfang zu nutzen und so den Datenverschiebungsdurchsatz in der Umgebung zu maximieren.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.

Im nativen Integration Runtime-Modus von Data Factory ist außerdem Parallelität auf unterschiedlichen Ebenen möglich.Data Factory native integration runtime mode also allows parallelism at different levels. Durch Verwendung von Parallelität lassen sich die Netzwerkbandbreite, die IOPS und die allgemeine Bandbreite in vollem Umfang nutzen, um den Datenverschiebungsdurchsatz zu maximieren:You can use parallelism to fully utilize your network bandwidth, storage IOPS, and bandwidth to maximize data movement throughput:

  • Eine einzelne Kopieraktivität kann skalierbare Computeressourcen nutzen.A single copy activity can take advantage of scalable compute resources. Mit einer selbstgehosteten Integration Runtime können Sie den Computer manuell hochskalieren oder auf mehrere Computer (bis zu vier Knoten) aufskalieren.With a self-hosted integration runtime, you can manually scale up the machine or scale out to multiple machines (up to four nodes). Bei einer einzelnen Kopieraktivität wird die Dateigruppe auf alle Knoten verteilt.A single copy activity partitions its file set across all nodes.
  • Für eine Kopieraktivität werden mehrere Threads genutzt, um für den Datenspeicher Lese- und Schreibvorgänge durchzuführen.A single copy activity reads from and writes to the data store by using multiple threads.
  • Mit der Data Factory-Ablaufsteuerung können mehrere Kopieraktivitäten parallel gestartet werden.Data Factory control flow can start multiple copy activities in parallel. Beispielsweise können Sie eine ForEach-Schleife verwenden.For example, you can use a For Each loop.

Weitere Informationen finden Sie unter Handbuch zur Leistung und Skalierbarkeit der Kopieraktivität.For more information, see the copy activity performance guide.

ResilienzResilience

Im DistCp-Modus von Data Factory können Sie verschiedene DistCp-Befehlszeilenparameter (z. B. -i: Fehler ignorieren oder -update: Daten schreiben, wenn Quelldatei und Zieldatei eine unterschiedliche Größe aufweisen), für unterschiedliche Resilienzebenen nutzen.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.

Im nativen Integration Runtime-Modus verfügt Data Factory bei der Ausführung einer einzelnen Kopieraktivität über einen integrierten Wiederholungsmechanismus.In the Data Factory native integration runtime mode, in a single copy activity run, Data Factory has a built-in retry mechanism. Damit kann ein gewisses Maß an vorübergehenden Fehlern in den Datenspeichern oder im zugrunde liegenden Netzwerk verarbeitet werden.It can handle a certain level of transient failures in the data stores or in the underlying network.

Beim Durchführen von binären Kopiervorgängen vom lokalen HDFS in Blob Storage und vom lokalen HDFS zu Data Lake Store Gen2 werden in Data Factory automatisch Prüfpunkte in großem Umfang gesetzt.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. Wenn bei der Ausführung einer Kopieraktivität ein Fehler oder Timeout aufgetreten ist, wird der Vorgang bei einer nachfolgenden Wiederholung (Wiederholungsanzahl > 1) ab dem letzten Fehlerpunkt fortgesetzt und nicht wieder am Anfang gestartet.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.

NetzwerksicherheitNetwork security

Standardmäßig werden Daten mit Data Factory über eine verschlüsselte Verbindung per HTTPS-Protokoll vom lokalen HDFS in Blob Storage oder Azure Data Lake Storage Gen2 übertragen.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. HTTPS ermöglicht die Datenverschlüsselung während der Übertragung und verhindert Abhör- und Man-in-the-Middle-Angriffe.HTTPS provides data encryption in transit and prevents eavesdropping and man-in-the-middle attacks.

Wenn Sie nicht möchten, dass Daten über das öffentliche Internet übertragen werden, können Sie alternativ aus Sicherheitsgründen Daten über einen privaten Peeringlink per ExpressRoute übertragen.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.

LösungsarchitekturSolution architecture

In dieser Abbildung ist die Migration von Daten über das öffentliche Internet dargestellt:This image depicts migrating data over the public internet:

Abbildung zur Lösungsarchitektur zum Migrieren von Daten über ein öffentliches Netzwerk

  • Bei dieser Architektur werden Daten auf sichere Weise per HTTPS über das öffentliche Internet übertragen.In this architecture, data is transferred securely by using HTTPS over the public internet.
  • Der DistCp-Modus von Data Factory wird für die Verwendung in einer öffentlichen Netzwerkumgebung empfohlen.We recommend using Data Factory DistCp mode in a public network environment. Dadurch können Sie einen vorhandenen leistungsfähigen Cluster nutzen, um einen optimalen Kopierdurchsatz zu erzielen.You can take advantage of a powerful existing cluster to achieve the best copy throughput. Außerdem profitieren Sie von der flexiblen Planung und einheitlichen Überwachung von Data Factory.You also get the benefit of flexible scheduling and unified monitoring experience from Data Factory.
  • Bei dieser Architektur müssen Sie die selbstgehostete Integration Runtime von Data Factory auf einem Windows-Computer hinter einer Unternehmensfirewall installieren, damit der DistCp-Befehl an den Hadoop-Cluster gesendet und der Kopierstatus überwacht werden kann.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. Da der Computer nicht als Engine zum Verschieben von Daten verwendet wird (sondern nur zur Steuerung), wirkt sich die Kapazität des Computers nicht auf den Durchsatz der Datenverschiebung aus.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.
  • Die vorhandenen Parameter für den DistCp-Befehl werden unterstützt.Existing parameters from the DistCp command are supported.

In dieser Abbildung ist die Migration von Daten über einen privaten Link dargestellt:This image depicts migrating data over a private link:

Abbildung zur Lösungsarchitektur zum Migrieren von Daten über ein privates Netzwerk

  • Bei dieser Architektur werden Daten über einen privaten Peeringlink per Azure ExpressRoute migriert.In this architecture, data is migrated over a private peering link via Azure ExpressRoute. Die Daten werden nie über das öffentliche Internet übertragen.Data never traverses over the public internet.
  • Das DistCp-Tool unterstützt kein privates ExpressRoute-Peering mit einem virtuellen Azure Storage-Netzwerkendpunkt.The DistCp tool doesn't support ExpressRoute private peering with an Azure Storage virtual network endpoint. Es wird empfohlen, die Daten mithilfe der nativen Data Factory-Funktion über die Integration Runtime zu migrieren.We recommend that you use Data Factory's native capability via the integration runtime to migrate the data.
  • Bei dieser Architektur müssen Sie die selbstgehostete Integration Runtime von Data Factory auf einem virtuellen Windows-Computer in Ihrem virtuellen Azure-Netzwerk installieren.For this architecture, you must install the Data Factory self-hosted integration runtime on a Windows VM in your Azure virtual network. Sie können den virtuellen Computer manuell hochskalieren oder das Aufskalieren auf mehrere virtuelle Computer durchführen, um IOPS und Bandbreite für Netzwerk und Speicher im vollem Umfang zu nutzen.You can manually scale up your VM or scale out to multiple VMs to fully utilize your network and storage IOPS or bandwidth.
  • Die empfohlene Konfiguration, mit der für jeden virtuellen Azure-Computer (mit installierter selbstgehosteter Integration Runtime von Data Factory) begonnen werden sollte, ist „Standard_D32s_v3“ mit 32 vCPUs und 128 GB Arbeitsspeicher.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. Sie können die Auslastung der CPU und des Arbeitsspeichers für den virtuellen Computer während der Datenmigration überwachen. So können Sie ermitteln, ob Sie den virtuellen Computer hochskalieren müssen, um die Leistung zu verbessern, oder ihn stattdessen herunterskalieren müssen, um Kosten zu senken.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.
  • Sie können auch aufskalieren, indem Sie bis zu vier VM-Knoten einer selbstgehosteten Integration Runtime zuordnen.You can also scale out by associating up to four VM nodes with a single self-hosted integration runtime. Bei einem einzelnen Kopierauftrag, der für eine selbstgehostete Integration Runtime ausgeführt wird, wird die Dateigruppe automatisch partitioniert, und alle VM-Knoten werden genutzt, um die Dateien parallel zu kopieren.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. Zur Sicherstellung von Hochverfügbarkeit wird empfohlen, mit zwei VM-Knoten zu beginnen, um bei der Datenmigration das Szenario eines Single Point of Failure zu vermeiden.For high availability, we recommend that you start with two VM nodes to avoid a single-point-of-failure scenario during data migration.
  • Bei Verwendung dieser Architektur ist die Migration sowohl der Daten einer Anfangsmomentaufnahme als auch der Deltadaten möglich.When you use this architecture, initial snapshot data migration and delta data migration are available to you.

Bewährte Methoden für die ImplementierungImplementation best practices

Bei der Implementierung der Datenmigration empfehlen sich folgende bewährte Methoden.We recommend that you follow these best practices when you implement your data migration.

Authentifizierung und Verwaltung von AnmeldeinformationenAuthentication and credential management

Migration der Daten der AnfangsmomentaufnahmeInitial snapshot data migration

Im DistCp-Modus von Data Factory können Sie eine Kopieraktivität erstellen, um den DistCp-Befehl zu senden und unterschiedliche Parameter zu verwenden und so das anfängliche Datenmigrationsverhalten zu steuern.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.

Im nativen Integration Runtime-Modus von Data Factory ist die Datenpartition empfehlenswert, vor allem, wenn mehr als 10 TB an Daten migriert werden.In Data Factory native integration runtime mode, we recommend data partition, especially when you migrate more than 10 TB of data. Verwenden Sie zum Partitionieren der Daten die Ordnernamen in HDFS.To partition the data, use the folder names on HDFS. Anschließend kann mit jedem Data Factory-Kopierauftrag jeweils eine Ordnerpartition kopiert werden.Then, each Data Factory copy job can copy one folder partition at a time. Sie können mehrere Data Factory-Kopieraufträge gleichzeitig ausführen, um einen besseren Durchsatz zu erzielen.You can run multiple Data Factory copy jobs concurrently for better throughput.

Wenn Kopieraufträge aufgrund eines vorübergehenden Problems mit dem Netzwerk oder dem Datenspeicher nicht erfolgreich sind, können Sie den fehlerhaften Kopierauftrag erneut ausführen, um diese spezifische Partition erneut in HDFS zu laden.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. Andere Kopieraufträge, mit denen andere Partitionen geladen werden, sind nicht betroffen.Other copy jobs that are loading other partitions aren't affected.

Migration von DeltadatenDelta data migration

Im DistCp-Modus von Data Factory können Sie den DistCp-Befehlszeilenparameter -update (Daten schreiben, wenn Quelldatei und Zieldatei eine unterschiedliche Größe aufweisen) für die Migration von Deltadaten verwenden.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.

Im nativen Integration Runtime-Modus von Data Factory ist die Verwendung einer Namenskonvention mit Zeitpartitionierung am effizientesten zum Identifizieren von neuen oder geänderten Dateien aus HDFS.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. Wenn für die Daten in HDFS die Zeitpartitionierung mit Zeitsegmentinformationen im Datei- oder Ordnernamen durchgeführt wurde (z. B. /jjjj/mm/tt/file.csv), kann in der Pipeline einfach ermittelt werden, welche Dateien und Ordner inkrementell kopiert werden müssen.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.

Wenn die Daten in HDFS nicht über eine Zeitpartitionierung verfügen, kann Data Factory neue oder geänderte Dateien anhand des Werts LastModifiedDate identifizieren.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 scannt alle Dateien aus HDFS und kopiert nur die neuen und aktualisierten Dateien, deren Zeitstempel der letzten Änderung größer als ein festgelegter Wert ist.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.

Bei einer großen Anzahl von Dateien in HDFS kann der erste Scanvorgang für die Dateien unabhängig davon, wie viele Dateien mit der Filterbedingung übereinstimmen, sehr lange dauern.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. In diesem Fall sollten Sie die Daten zunächst partitionieren, indem Sie die für die Migration der Anfangsmomentaufnahme verwendete Partition verwenden.In this scenario, we recommend that you first partition the data by using the same partition you used for the initial snapshot migration. Der Scanvorgang kann anschließend parallel erfolgen.Then, file scanning can occur in parallel.

PreisschätzungEstimate price

Sehen Sie sich die folgende Pipeline für die Migration von Daten aus HDFS zu Azure Blob Storage an:Consider the following pipeline for migrating data from HDFS to Azure Blob storage:

Abbildung der Tarifpipeline

Wir gehen von Folgendem aus:Let's assume the following information:

  • Das gesamte Datenvolumen beträgt 1 PB.Total data volume is 1 PB.
  • Sie migrieren die Daten mit dem nativen Integration Runtime-Modus von Data Factory.You migrate data by using the Data Factory native integration runtime mode.
  • Die 1 PB sind in 1.000 Partitionen unterteilt. Bei jedem Kopiervorgang wird eine Partition verschoben.1 PB is divided into 1,000 partitions and each copy moves one partition.
  • Jede Kopieraktivität ist mit einer selbstgehosteten Integration Runtime konfiguriert, die vier Computern zugeordnet ist, und erzielt einen Durchsatz von 500 MBit/s.Each copy activity is configured with one self-hosted integration runtime that's associated with four machines and which achieves 500-MBps throughput.
  • Die ForEach-Parallelität ist auf 4 festgelegt. Der aggregierte Durchsatz beträgt 2 GBit/s.ForEach concurrency is set to 4 and aggregate throughput is 2 GBps.
  • Insgesamt dauert es 146 Stunden, bis die Migration abgeschlossen ist.In total, it takes 146 hours to complete the migration.

Hier ist der geschätzte Preis basierend auf diesen Annahmen angegeben:Here's the estimated price based on our assumptions:

Tabelle mit Preisberechnungen

Hinweis

Dies ist ein hypothetisches Preisbeispiel.This is a hypothetical pricing example. Der tatsächliche Preis richtet sich nach dem tatsächlichen Durchsatz in Ihrer Umgebung.Your actual pricing depends on the actual throughput in your environment. Der Preis für einen virtuellen Azure-Computer (mit installierter selbstgehosteter Integration Runtime) ist nicht enthalten.The price for an Azure Windows VM (with self-hosted integration runtime installed) isn't included.

Zusätzliche VerweiseAdditional references

Nächste SchritteNext steps