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:
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.
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 exempelANALYZE 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: