Dela via


Apache Hadoop-arkitektur i HDInsight

Apache Hadoop innehåller två kärnkomponenter: Apache Hadoop Distributed File System (HDFS) som tillhandahåller lagring och Apache Hadoop Yet Another Resource Negotiator (YARN) som tillhandahåller bearbetning. Med lagrings- och bearbetningsfunktioner kan ett kluster köra MapReduce-program för att utföra önskad databehandling.

Kommentar

En HDFS distribueras vanligtvis inte i HDInsight-klustret för att tillhandahålla lagring. I stället används ett HDFS-kompatibelt gränssnittslager av Hadoop-komponenter. Den faktiska lagringsfunktionen tillhandahålls av antingen Azure Storage eller Azure Data Lake Storage. För Hadoop körs MapReduce-jobb på HDInsight-klustret som om det fanns en HDFS och kräver därför inga ändringar för att stödja deras lagringsbehov. I Hadoop på HDInsight outsourcas lagringen, men YARN-bearbetningen är fortfarande en kärnkomponent. Mer information finns i Introduktion till Azure HDInsight.

Den här artikeln beskriver YARN och hur det samordnar körningen av program på HDInsight.

Grunderna i Apache Hadoop YARN

YARN styr och orkestrerar databehandling i Hadoop. YARN har två kärntjänster som körs som processer på noder i klustret:

  • ResourceManager
  • NodeManager

ResourceManager beviljar klusterberäkningsresurser till program som MapReduce-jobb. ResourceManager beviljar dessa resurser som containrar, där varje container består av en allokering av CPU-kärnor och RAM-minne. Om du kombinerar alla tillgängliga resurser i ett kluster och sedan distribuerar kärnor och minne i block är varje resursblock en container. Varje nod i klustret har en kapacitet för ett visst antal containrar, och därför har klustret en fast gräns för antalet tillgängliga containrar. Tilldelningen av resurser i en container kan konfigureras.

När ett MapReduce-program körs på ett kluster tillhandahåller ResourceManager programmet de containrar som ska köras. ResourceManager spårar statusen för program som körs, tillgänglig klusterkapacitet och spårar program när de slutför och släpper sina resurser.

ResourceManager kör också en webbserverprocess som tillhandahåller ett webbanvändargränssnitt för att övervaka status för program.

När en användare skickar ett MapReduce-program som ska köras i klustret skickas programmet till ResourceManager. I sin tur allokerar ResourceManager en container på tillgängliga NodeManager-noder. NodeManager-noderna är där programmet faktiskt körs. Den första allokerade containern kör ett särskilt program som kallas ApplicationMaster. Den här ApplicationMaster ansvarar för att hämta resurser i form av efterföljande containrar som behövs för att köra det skickade programmet. ApplicationMaster undersöker faserna i programmet, till exempel kartsteget och reduce-fasen, samt faktorer för hur mycket data som behöver bearbetas. ApplicationMaster begär sedan (förhandlar) resurserna från ResourceManager för programmets räkning. ResourceManager beviljar i sin tur resurser från NodeManagers i klustret till ApplicationMaster som den kan använda för att köra programmet.

NodeManagers kör de uppgifter som utgör programmet och rapporterar sedan deras förlopp och status tillbaka till ApplicationMaster. ApplicationMaster rapporterar i sin tur tillbaka statusen för programmet till ResourceManager. ResourceManager returnerar eventuella resultat till klienten.

YARN på HDInsight

Alla HDInsight-klustertyper distribuerar YARN. ResourceManager distribueras för hög tillgänglighet med en primär och sekundär instans, som körs på den första respektive andra huvudnoden i klustret. Endast en instans av ResourceManager är aktiv i taget. NodeManager-instanserna körs över de tillgängliga arbetsnoderna i klustret.

Apache YARN on Azure HDInsight.

Mjuk borttagning

Information om hur du tar bort en fil från lagringskontot finns i:

Azure Storage

Azure Data Lake Storage Gen 1

Restore-AzDataLakeStoreDeletedItem

Azure Data Lake Storage Gen 2

Kända problem med Azure Data Lake Storage Gen2

Rensning av skräp

Egenskapen fs.trash.interval från HDFS>Advanced core-site bör ligga kvar på standardvärdet 0 eftersom du inte bör lagra några data i det lokala filsystemet. Det här värdet påverkar inte fjärrlagringskonton (WASB, ADLS GEN1, ABFS)

Nästa steg