Understanding Hadoop Yarn
On december 9, 2021 by adminYARN – Yet Another Resource Negotiator, a Hadoop 2 verzió része, az Apache Hadoop két fő komponensének egyike (a HDFS-sel együtt). Megtervezi a klaszter erőforrásainak használatát, valamint az adatokra alkalmazott kezeléseket.
Fentebb a Yarn alapvető felépítése, ahol az erőforrás-kezelő az egész architektúra központi eleme, amely az erőforrások kezeléséért felelős, beleértve a RAM-okat, CPU-kat és egyéb erőforrásokat a klaszter egészében. Az Application Master felelős az alkalmazások ütemezéséért az egész életciklus alatt, a Node Manager felelős az erőforrások ellátásáért és elkülönítéséért ezen a csomóponton.
A Resource Manager: irányítja a fürt erőforrás-kezelését, elosztási döntéseket is hoz. Az erőforrás-kezelőnek két fő összetevője van: Az ütemező: az úgynevezett YarnScheduler, amely különböző irányelveket tesz lehetővé a korlátozások, például a kapacitás, a méltányosság és a szolgáltatási szint megállapodások kezelésére.
A csomópontkezelő: felelős a csomóponton lévő konténerek indításáért és kezeléséért. A konténerek az AppMaster által meghatározott feladatokat hajtják végre.
- A konténer: Jelzi a kiosztott erőforrásokat egy ApplicationMaster számára. Az ResourceManager felelős az erőforrás/konténer kiadásáért egy ApplicationMaster számára. és olyan erőforrások gyűjteményére utal, mint a memória, a CPU, a lemez és a hálózati IO.
- Az ApplicationMaster: Egy keretrendszer-specifikus könyvtár példánya, amely az erőforrásokat az erőforrás-kezelőtől tárgyalja, és a NodeManagerrel együttműködve végrehajtja és felügyeli a megadott erőforrásokat (konténerekként összefogva) egy adott alkalmazás számára. Egy alkalmazás lehet mapreduce feladat, hive keretrendszer…
Az alkalmazások YARN-nel történő végrehajtásának lépései:
- A kliens benyújt egy alkalmazást a YARN ResourceManagerhez.
- Az ApplicationsManager (az ResourceManagerben) megtárgyal egy konténert, és bootstrapolja az ApplicationMaster példányt az alkalmazáshoz.
- Az ApplicationMaster regisztrál az ResourceManagerrel és konténereket (RAM-okat és CPU-kat) igényel.
- Az ApplicationMaster kommunikál a NodeManagerekkel, hogy elindítsa a neki biztosított konténereket.
- Az ApplicationMaster kezeli az alkalmazás végrehajtását. A végrehajtás során az alkalmazás előrehaladási és állapotinformációkat szolgáltat az ApplicationMaster számára. Az ügyfél nyomon követheti az alkalmazás állapotát az ResourceManager lekérdezésével vagy közvetlenül az ApplicationMasterrel való kommunikációval.
- Az ApplicationMaster jelenti az alkalmazás befejezését az ResourceManager számára.
- Az ApplicationMaster leiratkozik az ResourceManagerrel, amely ezután megtisztítja az ApplicationMaster konténert.
Yarn Scheduler :
A Scheduler egy csatlakoztatható házirenddel rendelkezik, amely a fürt erőforrásainak a különböző várólisták, alkalmazások stb. közötti felosztásáért felelős.
2. FIFO ütemező
A FIFO ütemező a Hadoop által használt egyik legkorábbi telepítési stratégia, amely egyszerűen értelmezhető úgy, mint egy Java sor. ami azt jelenti, hogy egyszerre csak egy feladat lehet a fürtben. Minden alkalmazás a benyújtás sorrendjében kerül végrehajtásra, és az előző Job befejezése utáni Job a sorbanállás sorrendjében kerül végrehajtásra.
Ez az ütemező lehetővé teszi, hogy a rövid alkalmazások ésszerű időn belül befejeződjenek, miközben nem éhezteti a hosszú életű alkalmazásokat.
2. Capacity scheduler
A Capacity scheduler egy csatlakoztatható ütemező a Hadoophoz, amely lehetővé teszi, hogy több bérlő biztonságosan megosszon egy nagy fürtöt. Az erőforrások úgy kerülnek kiosztásra az egyes bérlők alkalmazásai között, hogy a kiosztott kapacitások korlátai által szabályozott módon teljes mértékben kihasználják a fürtöt.
A sorokat általában a rendszergazdák állítják be a megosztott fürt gazdaságosságának tükrözése érdekében. A kapacitásütemező támogatja a hierarchikus várólistákat annak biztosítása érdekében, hogy az erőforrások megosztásra kerüljenek egy szervezet alvárólistái között, mielőtt más várólisták használhatnák a szabad erőforrásokat.
3. Fair scheduler
A FairScheduler egy csatlakoztatható ütemező a Hadoophoz, amely lehetővé teszi a YARN-alkalmazások számára az erőforrások igazságos megosztását egy nagy fürtben. A méltányos ütemezés egy olyan módszer az erőforrások alkalmazásokhoz való hozzárendelésére, hogy az összes alkalmazás idővel átlagosan egyenlő arányban részesüljön az erőforrásokból.
Vélemény, hozzászólás?