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 -i
ignorera 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:
- 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:
- 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
- Om du vill autentisera till HDFS kan du använda antingen Windows (Kerberos) eller Anonym.
- Flera autentiseringstyper stöds för anslutning till Azure Blob Storage. Vi rekommenderar starkt att du använder hanterade identiteter för Azure-resurser. Hanterade identiteter bygger på en automatiskt hanterad Data Factory-identitet i Microsoft Entra-ID och gör att du kan konfigurera pipelines utan att ange autentiseringsuppgifter i den länkade tjänstdefinitionen. Du kan också autentisera till Blob Storage med hjälp av tjänstens huvudnamn, en signatur för delad åtkomst eller en lagringskontonyckel.
- Flera autentiseringstyper stöds också för anslutning till Data Lake Storage Gen2. Vi rekommenderar starkt att du använder hanterade identiteter för Azure-resurser, men du kan också använda tjänstens huvudnamn eller en lagringskontonyckel.
- När du inte använder hanterade identiteter för Azure-resurser rekommenderar vi starkt att du lagrar autentiseringsuppgifterna i Azure Key Vault för att göra det enklare att centralt hantera och rotera nycklar utan att ändra länkade Data Factory-tjänster. Detta är också bästa praxis för CI/CD.
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 -update
DistCp , 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:
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:
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
- HDFS-anslutningsprogram
- Azure Blob Storage-anslutningsprogram
- Azure Data Lake Storage Gen2-anslutningsprogram
- Prestandajusteringsguide för kopieringsaktivitet
- Skapa och konfigurera lokalt installerad integrationskörning
- Hög tillgänglighet och skalbarhet för lokalt installerad integrationskörning
- Säkerhetsöverväganden för dataflytt
- Lagra autentiseringsuppgifter i Azure Key Vault
- Kopiera en fil stegvis baserat på ett tidspartitionerat filnamn
- Kopiera nya och ändrade filer baserat på LastModifiedDate
- Prissättningssida för Data Factory