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 som hjälper dig 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. Att migrera lokala Hadoop-kluster till Azure HDInsight kräver en ändring i metoden.
Azure HDInsight-kluster är utformade för en specifik typ av beräkningsanvändning. Eftersom lagring kan delas mellan flera kluster är det möjligt att skapa flera arbetsbelastningsoptimerade beräkningskluster för att uppfylla 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.
Arbetsbörda | HDInsight-klustertyp |
---|---|
Batchbearbetning (ETL/ELT) | Hadoop, Spark |
Datalagerhantering | Hadoop, Spark, Interaktiv sökning |
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 Portal | 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 Create on-demand Apache Hadoop clusters in HDInsight using 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 samallokerade måste datorkraft och lagring skalas upp tillsammans.
I HDInsight-kluster behöver lagringen inte samlokaliseras med beräkningen och kan antingen finnas i Azure Storage, Azure Data Lake Storage eller båda. 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å huvudsakliga metaarkiv som fungerar med HDInsight-kluster: Apache Hive och Apache Oozie. Hive-metaarkivet är den centrala schemalagringsplatsen som kan användas av databearbetningsmotorer 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.
- Metastore 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 Database som metaarkiv.
- Kluster kan skapas och tas bort utan att metadatainformation, inklusive Hive-schema och Oozie-jobbdetaljer, förloras.
- Enkel metaarkivdatabas kan delas med olika typer av kluster.
- Metaarkivet 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 Azure SQL-instans på S2-nivå som ger 50 DTU och 250 GB lagringsutrymme. Om du ser en flaskhals kan du skala upp databasen.
- Dela inte metastore 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 Database Monitoring-verktyg, till exempel Azure-portalen eller Azure Monitor-loggar.
- Kör kommandot
ANALYZE TABLE
som krävs för att generera statistik för tabeller och kolumner. 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 i 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: