Dela via


Migrera lokala Apache Hadoop-kluster till Azure HDInsight – metodtips för arkitektur

Den här artikeln ger rekommendationer för arkitekturen i Azure HDInsight-system. Det är en del av en serie som innehåller metodtips för att migrera lokala Apache Hadoop-system till Azure HDInsight.

Använda flera arbetsbelastningsoptimerade kluster

Många lokala Apache Hadoop-distributioner består av ett enda stort kluster som stöder många arbetsbelastningar. Det här klustret kan vara komplext och kan kräva kompromisser med de enskilda tjänsterna för att allt ska fungera tillsammans. Migrering av lokala Hadoop-kluster till Azure HDInsight kräver en ändring i metoden.

Azure HDInsight-kluster är utformade för en viss typ av beräkningsanvändning. Eftersom lagring kan delas mellan flera kluster är det möjligt att skapa flera arbetsbelastningsoptimerade beräkningskluster som uppfyller behoven för olika jobb. Varje klustertyp har den optimala konfigurationen för den specifika arbetsbelastningen. I följande tabell visas de klustertyper som stöds i HDInsight och motsvarande arbetsbelastningar.

Arbetsbelastning HDInsight-klustertyp
Batchbearbetning (ETL/ELT) Hadoop, Spark
Datalagerhantering Hadoop, Spark Interaktiv fråga
IoT/Direktuppspelning Kafka, Spark
NoSQL Transaktionsbearbetning HBase
Interaktiva och snabbare frågor med minnesintern cachelagring Interaktiv fråga
Datavetenskap Spark

I följande tabell visas de olika metoder som kan användas för att skapa ett HDInsight-kluster.

Verktyg Webbläsarbaserad Kommandorad REST API SDK
Azure-portalen X
Azure Data Factory X X X X
Azure CLI (ver 1.0) X
Azure PowerShell X
cURL X X
.NET SDK X
Python SDK X
Java SDK X
Azure Resource Manager-mallar X

Mer information finns i artikeln Klustertyper i HDInsight.

Använda tillfälliga kluster på begäran

HDInsight-kluster kan gå oanvända under långa tidsperioder. För att spara på resurskostnader stöder HDInsight tillfälliga kluster på begäran, som kan tas bort när arbetsbelastningen har slutförts.

När du tar bort ett kluster tas inte det associerade lagringskontot och externa metadata bort. Klustret kan senare återskapas med samma lagringskonton och metaarkiv.

Azure Data Factory kan användas för att schemalägga skapandet av HDInsight-kluster på begäran. Mer information finns i artikeln Skapa Apache Hadoop-kluster på begäran i HDInsight med hjälp av Azure Data Factory.

Frikoppla lagring från beräkning

Vanliga lokala Hadoop-distributioner använder samma uppsättning datorer för datalagring och databearbetning. Eftersom de är samlokaliserade måste beräkning och lagring skalas tillsammans.

I HDInsight-kluster behöver lagringen inte samplaceras med beräkning och kan antingen finnas i Azure Storage, Azure Data Lake Storage eller både och. Avkoppling av lagring från beräkning har följande fördelar:

  • Datadelning mellan kluster.
  • Användning av tillfälliga kluster eftersom data inte är beroende av kluster.
  • Lägre lagringskostnad.
  • Skala lagring och beräkning separat.
  • Datareplikering mellan regioner.

Beräkningskluster skapas nära lagringskontoresurser i en Azure-region för att minska prestandakostnaden för att separera beräkning och lagring. Höghastighetsnätverk gör det effektivt för beräkningsnoderna att komma åt data i Azure Storage.

Använda extern metadatalagring

Det finns två huvudmetaarkiv som fungerar med HDInsight-kluster: Apache Hive och Apache Oozie. Hive-metaarkivet är den centrala schemalagringsplatsen som kan användas av databehandlingsmotorer som Hadoop, Spark, LLAP, Presto och Apache Pig. Oozie-metaarkivet lagrar information om schemaläggning och status för pågående och slutförda Hadoop-jobb.

HDInsight använder Azure SQL Database for Hive- och Oozie-metaarkiv. Det finns två sätt att konfigurera ett metaarkiv i HDInsight-kluster:

  1. Standardmetaarkiv

    • Ingen extra kostnad.
    • Metaarkivet tas bort när klustret tas bort.
    • Metaarkiv kan inte delas mellan olika kluster.
    • Använder grundläggande Azure SQL DB, som har en gräns på fem DTU:er.
  2. Anpassat externt metaarkiv

    • Ange en extern Azure SQL-databas som metaarkiv.
    • Kluster kan skapas och tas bort utan att metadata förloras, inklusive Information om Hive-schema Oozie-jobb.
    • En enda metaarkivdatabas kan delas med olika typer av kluster.
    • Metaarkiv kan skalas upp efter behov.
    • Mer information finns i Använda externa metadatalager i Azure HDInsight.

Metodtips för Hive-metaarkiv

Vissa metodtips för HDInsight Hive-metaarkiv är följande:

  • Använd ett anpassat externt metaarkiv för att separera beräkningsresurser och metadata.
  • Börja med en S2-nivå Azure SQL instans, som tillhandahåller 50 DTU och 250 GB lagring. Om du ser en flaskhals kan du skala upp databasen.
  • Dela inte metaarkivet som skapats för en HDInsight-klusterversion med kluster av en annan version. Olika Hive-versioner använder olika scheman. Ett metaarkiv kan till exempel inte delas med både Hive 1.2- och Hive 2.1-kluster.
  • Säkerhetskopiera det anpassade metaarkivet med jämna mellanrum.
  • Behåll metaarkivet och HDInsight-klustret i samma region.
  • Övervaka metaarkivet för prestanda och tillgänglighet med hjälp av Azure SQL databasövervakningsverktyg, till exempel Azure Portal- eller Azure Monitor-loggar.
  • ANALYZE TABLE Kör kommandot efter behov för att generera statistik för tabeller och kolumner. Till exempel ANALYZE TABLE [table_name] COMPUTE STATISTICS.

Metodtips för olika arbetsbelastningar

  • Överväg att använda LLAP-kluster för interaktiva Hive-frågor med förbättrad svarstid llap är en ny funktion i Hive 2.0 som tillåter minnesintern cachelagring av frågor.
  • Överväg att använda Spark-jobb i stället för Hive-jobb.
  • Överväg att ersätta impalabaserade frågor med LLAP-frågor.
  • Överväg att ersätta MapReduce-jobb med Spark-jobb.
  • Överväg att ersätta Spark-batchjobb med låg latens med Spark Structured Streaming-jobb.
  • Överväg att använda Azure Data Factory (ADF) 2.0 för dataorkestrering.
  • Överväg Ambari för klusterhantering.
  • Ändra datalagring från lokal HDFS till WASB, ADLS eller ADFS för bearbetning av skript.
  • Överväg att använda Ranger RBAC på Hive-tabeller och granskning.
  • Överväg att använda CosmosDB i stället för MongoDB eller Cassandra.

Nästa steg

Läs nästa artikel i den här serien: