Dela via


Använda Azure Data Factory för att migrera data från ett lokalt Hadoop-kluster till Azure Storage

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

Dricks

Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!

Azure Data Factory tillhandahåller en högpresterande, robust och kostnadseffektiv mekanism för att migrera data i stor skala från lokala HDFS till Azure Blob Storage eller Azure Data Lake Storage Gen2.

Data Factory erbjuder två grundläggande metoder för att migrera data från lokala HDFS till Azure. Du kan välja metoden baserat på ditt scenario.

  • Data Factory DistCp-läge (rekommenderas): I Data Factory kan du använda DistCp (distribuerad kopia) för att kopiera filer som de är till Azure Blob Storage (inklusive mellanlagrad kopia) eller Azure Data Lake Store Gen2. Använd Data Factory integrerat med DistCp för att dra nytta av ett befintligt kraftfullt kluster för att uppnå bästa möjliga dataflöde för kopiering. Du får också fördelen med flexibel schemaläggning och en enhetlig övervakningsupplevelse från Data Factory. Beroende på din Data Factory-konfiguration skapar kopieringsaktiviteten automatiskt ett DistCp-kommando, skickar data till Hadoop-klustret och övervakar sedan kopieringsstatusen. Vi rekommenderar Data Factory DistCp-läge för migrering av data från ett lokalt Hadoop-kluster till Azure.
  • Data Factory-inbyggt integrationskörningsläge: DistCp är inte ett alternativ i alla scenarier. I en Azure Virtual Networks-miljö stöder distCp-verktyget till exempel inte privat Peering i Azure ExpressRoute med en slutpunkt för ett virtuellt Azure Storage-nätverk. I vissa fall vill du dessutom inte använda ditt befintliga Hadoop-kluster som motor för att migrera data så att du inte lägger tunga belastningar på klustret, vilket kan påverka prestandan för befintliga ETL-jobb. I stället kan du använda den inbyggda funktionen för Data Factory-integreringskörningen som den motor som kopierar data från lokala HDFS till Azure.

Den här artikeln innehåller följande information om båda metoderna:

  • Föreställning
  • Kopiera motståndskraft
  • Nätverkssäkerhet
  • Arkitektur för högnivålösningar
  • Metodtips för implementering

Prestanda

I Data Factory DistCp-läge är dataflödet detsamma som om du använder DistCp-verktyget oberoende av varandra. Data Factory DistCp-läget maximerar kapaciteten för ditt befintliga Hadoop-kluster. Du kan använda DistCp för stor kopiering mellan kluster eller intrakluster.

DistCp använder MapReduce för att påverka dess distribution, felhantering och återställning samt rapportering. Den expanderar en lista över filer och kataloger till indata för uppgiftsmappning. Varje uppgift kopierar en filpartition som anges i källlistan. Du kan använda Data Factory integrerat med DistCp för att skapa pipelines för att fullt ut utnyttja din nätverksbandbredd, lagrings-IOPS och bandbredd för att maximera dataflyttens dataflöde för din miljö.

Data Factory-inbyggt integrationskörningsläge tillåter också parallellitet på olika nivåer. Du kan använda parallellitet för att fullt ut utnyttja din nätverksbandbredd, lagrings-IOPS och bandbredd för att maximera dataflyttens dataflöde:

  • En enskild kopieringsaktivitet kan dra nytta av skalbara beräkningsresurser. Med en lokalt installerad integrationskörning kan du skala upp datorn manuellt eller skala ut till flera datorer (upp till fyra noder). En enskild kopieringsaktivitet partitioner sin filuppsättning över alla noder.
  • En enskild kopieringsaktivitet läser från och skriver till datalagret med hjälp av flera trådar.
  • Data Factory-kontrollflödet kan starta flera kopieringsaktiviteter parallellt. Du kan till exempel använda en For Each-loop.

Mer information finns i prestandaguiden för kopieringsaktivitet.

Elasticitet

I Data Factory DistCp-läge kan du använda olika DistCp-kommandoradsparametrar (till exempel -iignorera fel eller -update, skriva data när källfilen och målfilen skiljer sig åt i storlek) för olika motståndskraftsnivåer.

I datafabrikens inbyggda integrationskörningsläge har Data Factory en inbyggd mekanism för återförsök i en enda kopieringsaktivitetskörning. Den kan hantera en viss nivå av tillfälliga fel i datalager eller i det underliggande nätverket.

När du gör binär kopiering från lokal HDFS till Blob Storage och från lokala HDFS till Data Lake Store Gen2, utför Data Factory automatiskt kontrollpunkter i stor utsträckning. Om en kopieringsaktivitetskörning misslyckas eller överskrider tidsgränsen vid ett efterföljande återförsök (se till att antalet återförsök är > 1) återupptas kopian från den senaste felpunkten i stället för att starta i början.

Nätverkssäkerhet

Data Factory överför som standard data från lokala HDFS till Blob Storage eller Azure Data Lake Storage Gen2 med hjälp av en krypterad anslutning via HTTPS-protokollet. HTTPS tillhandahåller datakryptering under överföring och förhindrar avlyssning och man-in-the-middle-attacker.

Om du inte vill att data ska överföras via det offentliga Internet kan du för högre säkerhet överföra data via en privat peeringlänk via ExpressRoute.

Lösningsarkitekturen

Den här bilden visar migrering av data via det offentliga Internet:

Diagram som visar lösningsarkitekturen för att migrera data över ett offentligt nätverk

  • I den här arkitekturen överförs data på ett säkert sätt med hjälp av HTTPS via det offentliga Internet.
  • Vi rekommenderar att du använder Data Factory DistCp-läge i en offentlig nätverksmiljö. Du kan dra nytta av ett kraftfullt befintligt kluster för att uppnå det bästa dataflödet för kopiering. Du får också fördelen av flexibel schemaläggning och enhetlig övervakning från Data Factory.
  • För den här arkitekturen måste du installera Den lokala integreringskörningen för Data Factory på en Windows-dator bakom en företagsbrandvägg för att skicka DistCp-kommandot till Hadoop-klustret och övervaka kopieringsstatusen. Eftersom datorn inte är den motor som flyttar data (endast i kontrollsyfte) påverkar inte datorns kapacitet dataflödet.
  • Befintliga parametrar från Kommandot DistCp stöds.

Den här bilden visar migrering av data via en privat länk:

Diagram som visar lösningsarkitekturen för att migrera data över ett privat nätverk

  • I den här arkitekturen migreras data via en privat peeringlänk via Azure ExpressRoute. Data passerar aldrig via det offentliga Internet.
  • DistCp-verktyget stöder inte privat ExpressRoute-peering med en slutpunkt för ett virtuellt Azure Storage-nätverk. Vi rekommenderar att du använder Data Factorys inbyggda kapacitet via integrationskörningen för att migrera data.
  • För den här arkitekturen måste du installera Den lokala integreringskörningen för Data Factory på en virtuell Windows-dator i ditt virtuella Azure-nätverk. Du kan skala upp den virtuella datorn manuellt eller skala ut till flera virtuella datorer för att fullt ut utnyttja ditt nätverks- och lagrings-IOPS eller din bandbredd.
  • Den rekommenderade konfigurationen som ska börja med för varje virtuell Azure-dator (med Data Factory lokalt installerad integrationskörning) är Standard_D32s_v3 med en 32 vCPU och 128 GB minne. Du kan övervaka processor- och minnesanvändningen för den virtuella datorn under datamigreringen för att se om du behöver skala upp den virtuella datorn för bättre prestanda eller skala ned den virtuella datorn för att minska kostnaderna.
  • Du kan också skala ut genom att associera upp till fyra VM-noder med en enda lokalt installerad integrationskörning. Ett enda kopieringsjobb som körs mot en lokalt installerad integrationskörning partitionerar automatiskt filuppsättningen och använder alla VM-noder för att kopiera filerna parallellt. För hög tillgänglighet rekommenderar vi att du börjar med två VM-noder för att undvika ett scenario med en enda felpunkt under datamigreringen.
  • När du använder den här arkitekturen är inledande migrering av ögonblicksbildsdata och deltadatamigrering tillgänglig för dig.

Metodtips för implementering

Vi rekommenderar att du följer dessa metodtips när du implementerar datamigreringen.

Hantering av autentiserings- och autentiseringsuppgifter

Initial datamigrering av ögonblicksbilder

I Data Factory DistCp-läge kan du skapa en kopieringsaktivitet för att skicka DistCp-kommandot och använda olika parametrar för att styra det inledande datamigreringsbeteendet.

I datafabrikens inbyggda integrationskörningsläge rekommenderar vi datapartition, särskilt när du migrerar mer än 10 TB data. Om du vill partitionering av data använder du mappnamnen på HDFS. Sedan kan varje Data Factory-kopieringsjobb kopiera en mapppartition i taget. Du kan köra flera Data Factory-kopieringsjobb samtidigt för bättre dataflöde.

Om något av kopieringsjobben misslyckas på grund av tillfälliga problem med nätverket eller datalagret kan du köra det misslyckade kopieringsjobbet igen för att läsa in den specifika partitionen från HDFS igen. Andra kopieringsjobb som läser in andra partitioner påverkas inte.

Deltadatamigrering

I Data Factory DistCp-läge kan du använda kommandoradsparametern -updateDistCp , skriva data när källfilen och målfilen skiljer sig i storlek för migrering av deltadata.

I inbyggt datafabriksintegreringsläge är det mest högpresterande sättet att identifiera nya eller ändrade filer från HDFS genom att använda en tidspartitionerad namngivningskonvention. När dina data i HDFS har tidspartitionerats med tidssektorinformation i fil- eller mappnamnet (till exempel /åååå/mm/dd/file.csv) kan pipelinen enkelt identifiera vilka filer och mappar som ska kopieras stegvis.

Om dina data i HDFS inte är tidspartitionerade kan Data Factory identifiera nya eller ändrade filer med hjälp av lastModifiedDate-värdet. Data Factory söker igenom alla filer från HDFS och kopierar endast nya och uppdaterade filer som har en senast ändrad tidsstämpel som är större än ett angivet värde.

Om du har ett stort antal filer i HDFS kan den inledande filgenomsökningen ta lång tid, oavsett hur många filer som matchar filtervillkoret. I det här scenariot rekommenderar vi att du först partitioneras data med hjälp av samma partition som du använde för den första ögonblicksbildsmigreringen. Sedan kan filgenomsökning ske parallellt.

Uppskatta pris

Överväg följande pipeline för att migrera data från HDFS till Azure Blob Storage:

Diagram som visar prispipelinen

Vi antar följande information:

  • Den totala datavolymen är 1 PB.
  • Du migrerar data med hjälp av det interna integrationskörningsläget för Data Factory.
  • 1 PB är indelad i 1 000 partitioner och varje kopia flyttar en partition.
  • Varje kopieringsaktivitet konfigureras med en lokalt installerad integrationskörning som är associerad med fyra datorer och som uppnår dataflödet 500 Mbit/s.
  • ForEach-samtidighet är inställt på 4 och aggregerat dataflöde är 2 GBIT/s.
  • Totalt tar det 146 timmar att slutföra migreringen.

Här är det uppskattade priset baserat på våra antaganden:

Tabell som visar prisberäkningar

Kommentar

Det här är ett hypotetiskt prisexempel. Din faktiska prissättning beror på det faktiska dataflödet i din miljö. Priset för en virtuell Azure Windows-dator (med lokalt installerad integrationskörning) ingår inte.

Ytterligare referenser