Delen via


On-premises Apache Hadoop-clusters migreren naar Azure HDInsight - best practices voor gegevensmigratie

Dit artikel bevat aanbevelingen voor gegevensmigratie naar Azure HDInsight. Het maakt deel uit van een reeks met aanbevolen procedures voor het migreren van on-premises Apache Hadoop-systemen naar Azure HDInsight.

On-premises gegevens migreren naar Azure

Er zijn twee belangrijkste opties voor het migreren van gegevens van on-premises naar de Azure-omgeving:

  • Gegevens overdragen via netwerk met TLS

    • Via internet: u kunt gegevens overdragen naar Azure Storage via een gewone internetverbinding met behulp van een van de verschillende hulpprogramma's, zoals Azure Storage Explorer, AzCopy, Azure PowerShell en Azure CLI. Zie Gegevens verplaatsen van en naar Azure Storage voor meer informatie.

    • Express Route - ExpressRoute is een Azure-service waarmee u privéverbindingen kunt maken tussen Microsoft-datacenters en -infrastructuur die zich on-premises of in een colocatiefaciliteit bevindt. ExpressRoute-verbindingen gaan niet via het openbare internet en bieden hogere beveiliging, betrouwbaarheid en snelheden met lagere latenties dan gewone verbindingen via internet. Zie Een ExpressRoute-circuit maken en wijzigen voor meer informatie.

    • Data Box Online-gegevensoverdracht: Data Box Edge en Data Box Gateway zijn onlineproducten voor gegevensoverdracht die fungeren als netwerkopslaggateways voor het beheren van gegevens tussen uw site en Azure. Met Data Box Edge, een on-premises netwerkapparaat, worden gegevens overdragen van en naar Azure en worden gegevens verwerkt met behulp van Edge-rekenprocessen met artificial intelligence (AI). Data Box Gateway is een virtueel apparaat met opslaggatewaymogelijkheden. Zie de documentatie voor Azure Data Box - Onlineoverdracht voor meer informatie.

  • Offline verzenden van gegevens

    Data Box offline gegevensoverdracht - Data Box-, Data Box Disk- en Data Box Heavy-apparaten helpen u grote hoeveelheden gegevens over te dragen naar Azure wanneer het netwerk geen optie is. Deze apparaten voor offlinegegevensoverdracht worden verzonden van het Azure-datacenter naar uw organisatie en vice versa. De apparaten maken gebruik van AES-versleuteling om uw gegevens tijdens de overdracht te beveiligen en ondergaan na het uploaden een grondig opschoningsproces om uw gegevens van het apparaat te verwijderen. Zie de documentatie van Azure Data Box - Offlineoverdracht voor meer informatie over de Data Box-apparaten voor offlineoverdracht. Zie Azure Data Box gebruiken om te migreren van een on-premises HDFS-archief naar Azure Storage voor meer informatie over de migratie van Hadoop-clusters.

De volgende tabel heeft een geschatte duur van gegevensoverdracht op basis van het gegevensvolume en de netwerkbandbreedte. Gebruik een Data Box als de gegevensmigratie naar verwachting meer dan drie weken duurt.

Aantal gegevens Netwerkbandbreedte
van de
45 Mbps (T3)
Netwerkbandbreedte
van de
100 Mbps
Netwerkbandbreedte
van de
1 Gbps
Netwerkbandbreedte
van de
10 Gbps
1 TB 2 dagen 1 dag 2 uur 14 minuten
10 TB 22 dagen 10 dagen 1 dag 2 uur
35 TB 76 dagen 34 dagen 3 dagen 8 uur
80 TB 173 dagen 78 dagen 8 dagen 19 uur
100 TB 216 dagen 97 dagen 10 dagen 1 dag
200 TB 1 jaar 194 dagen 19 dagen 2 dagen
500 TB Drie jaar 1 jaar 49 dagen 5 dagen
1 PB Zes jaar Drie jaar 97 dagen 10 dagen
2 PB 12 jaar Vijf jaar 194 dagen 19 dagen

Hulpprogramma's die systeemeigen zijn voor Azure, zoals Apache Hadoop DistCp, Azure Data Factory en AzureCp, kunnen worden gebruikt voor het overdragen van gegevens via het netwerk. Het hulpprogramma WANDisco van derden kan ook voor hetzelfde doel worden gebruikt. Apache Kafka Mirrormaker en Apache Sqoop kunnen worden gebruikt voor continue gegevensoverdracht van on-premises naar Azure-opslagsystemen.

Prestatieoverwegingen bij het gebruik van Apache Hadoop DistCp

DistCp is een Apache-project dat gebruikmaakt van een MapReduce Map-taak voor het overdragen van gegevens, het verwerken van fouten en het herstellen van deze fouten. Er wordt een lijst met bronbestanden aan elke toewijzingstaak toegewezen. De toewijzingstaak kopieert vervolgens alle toegewezen bestanden naar het doel. Er zijn verschillende technieken die de prestaties van DistCp kunnen verbeteren.

Het aantal Mappers verhogen

DistCp probeert toewijzingstaken te maken, zodat elke taak ongeveer hetzelfde aantal bytes kopieert. DistCp-taken maken standaard gebruik van 20 mappers. Het gebruik van meer Mappers voor Distcp (met de parameter 'm' op de opdrachtregel) verhoogt de parallelle uitvoering tijdens het gegevensoverdrachtproces en vermindert de lengte van de gegevensoverdracht. Er zijn echter twee dingen die u moet overwegen bij het verhogen van het aantal Mappers:

  • DistCp's laagste granulariteit is één bestand. Het opgeven van een aantal Mappers meer dan het aantal bronbestanden helpt niet en verspilt de beschikbare clusterresources.

  • Houd rekening met het beschikbare Yarn-geheugen op het cluster om het aantal Mappers te bepalen. Elke toewijzingstaak wordt gestart als een Yarn-container. Ervan uitgaande dat er geen andere zware werkbelastingen worden uitgevoerd op het cluster, kan het aantal Mappers worden bepaald door de volgende formule: m = (aantal werkknooppunten * YARN-geheugens voor elk werkknooppunt) / YARN-containergrootte. Als andere toepassingen echter geheugen gebruiken, kiest u ervoor om alleen een deel van YARN-geheugen te gebruiken voor DistCp-taken.

Meer dan één DistCp-taak gebruiken

Wanneer de grootte van de gegevensset die moet worden verplaatst groter is dan 1 TB, gebruikt u meer dan één DistCp-taak. Het gebruik van meer dan één taak beperkt de impact van fouten. Als een taak mislukt, hoeft u die specifieke taak alleen opnieuw op te starten in plaats van alle taken.

Overweeg bestanden te splitsen

Als er een klein aantal grote bestanden is, kunt u overwegen om ze te splitsen in bestandssegmenten van 256 MB om meer potentiële gelijktijdigheid met meer Mappers te krijgen.

De opdrachtregelparameter Strategie gebruiken

Overweeg het gebruik van strategy = dynamic de parameter in de opdrachtregel. De standaardwaarde van de strategy parameter is uniform size, in welk geval elke kaart ongeveer hetzelfde aantal bytes kopieert. Wanneer deze parameter wordt gewijzigd dynamicin , wordt het vermeldingsbestand gesplitst in verschillende 'chunk-files'. Het aantal segmentbestanden is een veelvoud van het aantal kaarten. Aan elke toewijzingstaak wordt een van de segmentbestanden toegewezen. Nadat alle paden in een segment zijn verwerkt, wordt het huidige segment verwijderd en wordt een nieuw segment verkregen. Het proces wordt voortgezet totdat er geen segmenten meer beschikbaar zijn. Dankzij deze 'dynamische' benadering kunnen snellere toewijzingstaken meer paden gebruiken dan langzamere paden, waardoor de DistCp-taak over het algemeen sneller verloopt.

Het aantal threads verhogen

Kijk of het verhogen van de parameter de -numListstatusThreads prestaties verbetert. Deze parameter bepaalt het aantal threads dat moet worden gebruikt voor het maken van een lijst met bestanden en 40 is de maximumwaarde.

Het uitvoerdoorvoeringsalgoritmen gebruiken

Kijk of het doorgeven van de parameter -Dmapreduce.fileoutputcommitter.algorithm.version=2 de distCp-prestaties verbetert. Dit doorvoeringsalgoritmen voor uitvoer bevat optimalisaties voor het schrijven van uitvoerbestanden naar het doel. De volgende opdracht is een voorbeeld waarin het gebruik van verschillende parameters wordt weergegeven:

hadoop distcp -Dmapreduce.fileoutputcommitter.algorithm.version=2 -numListstatusThreads 30 -m 100 -strategy dynamic hdfs://nn1:8020/foo/bar wasb://<container_name>@<storage_account_name>.blob.core.windows.net/foo/

Migratie van metagegevens

Apache Hive

De hive-metastore kan worden gemigreerd met behulp van de scripts of met behulp van de DB-replicatie.

Hive-metastore-migratie met behulp van scripts

  1. Genereer de Hive-DDLs van on-premises Hive-metastore. Deze stap kan worden uitgevoerd met behulp van een wrapper bash-script.
  2. Bewerk de gegenereerde DDL om de HDFS-URL te vervangen door WASB/ADLS/ABFS-URL's.
  3. Voer de bijgewerkte DDL uit op de metastore vanuit het HDInsight-cluster.
  4. Zorg ervoor dat de Hive-metastore-versie compatibel is tussen on-premises en cloud.

Hive-metastoremigratie met behulp van DB-replicatie

  • Databasereplicatie instellen tussen on-premises Hive-metastore DB en HDInsight-metastore DB.

  • Gebruik hive MetaTool om de HDFS-URL te vervangen door WASB/ADLS/ABFS-URL's, bijvoorbeeld:

    ./hive --service metatool -updateLocation hdfs://nn1:8020/ wasb://<container_name>@<storage_account_name>.blob.core.windows.net/
    

Apache Ranger

  • On-premises Ranger-beleid exporteren naar XML-bestanden.
  • On-premises specifieke HDFS-paden transformeren naar WASB/ADLS met behulp van een hulpprogramma zoals XSLT.
  • Importeer het beleid in Ranger dat wordt uitgevoerd in HDInsight.

Volgende stappen

Lees het volgende artikel in deze reeks: