Teknologian jakaminen

Big Data Basics: Hadoop-langan keskeiset arkkitehtuuriperiaatteet

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Artikkelihakemisto

Hadoop-langan tärkeimmät arkkitehtoniset periaatteet

1. Johdatus lankaan

2. Lankaarkkitehtuuri

3. Lankatehtävän ajoprosessi

4. Lankan kolmen resurssiaikataulun ominaisuudet ja käyttöskenaariot


Hadoop-langan tärkeimmät arkkitehtoniset periaatteet

1. Johdatus lankaan

Apache Hadoop Yarn (Yet Another Reasource Negotiator, toinen resurssien koordinaattori) on Hadoop2.x-version jälkeen käytetty resurssienhallinta, joka voi tarjota yhtenäisen resurssienhallintaalustan ylemmän tason sovelluksille.

2. Lankaarkkitehtuuri

Lanka koostuu pääasiassa ResourceManagerista, NodeManagerista, ApplicationMasterista ja Containerista.

  • Resource Manager

ResourceManager on Yarn-klusterin keskusvastaava ja vastaa koko klusterin resurssien allokoinnista ja ajoituksesta. ResourceManager vastaa NodeManager-solmujen tilan seurannasta, klusteriresurssien keräämisestä, asiakkaan lähettämien tehtävien resurssipyyntöjen käsittelystä sekä kunkin sovelluksen ApplicationMasterin käynnistämisestä ja valvonnasta.

  • NodeManager

NodeManager on vastuussa kunkin solmun resurssien (kuten muistin, suorittimen jne.) hallinnasta ja raportoinnista ResourceManagerille. Kun ResourceManager määrittää säilön (säilön) NodeManagerille, NodeManager on vastuussa säilön käynnistämisestä ja säilön toiminnan valvonnasta. Lisäksi NodeManager vastaanottaa myös ApplicationMaster-komennon käynnistääkseen säilön (Container) jokaiselle sovellukselle.

  • ApplicationMaster

Jokainen Yarnissa käynnissä oleva sovellus käynnistää vastaavan ApplicationMasterin, joka vastaa resurssien hakemisesta ResourceManagerin avulla ja sovellustehtävien hallinnasta. ApplicationMaster on pohjimmiltaan resurssien ajoitus, jonka suorittaa ResourceManager ja käynnistää sen. Kun ApplicationMaster on käynnistetty, se hakee resursseja ResourceManagerista sovelluksen suorittamiseen, ja ApplicationMaster muodostaa yhteyden vastaavaan NodeManageriin. Säilön käynnistäminen ja Säilön resurssien hallinta.

  • Säiliö

Container Container on Yarnin perussuoritusyksikkö, jota käytetään sovellustehtävien suorittamiseen. Se on virtuaalinen ympäristö, joka sisältää sovelluskoodin, riippuvuuksia ja toiminnan edellyttämiä resursseja (muisti, suoritin, levy, verkko). ResourceManager määrittää jokaisen säilön ApplicationMasterille, ja NodeManager käynnistää ja hallitsee sitä vastaavassa solmussa. NodeManager valvoo säilön resurssien käyttöä ja raportoi ResourceManagerille tarvittaessa.

Yarnin ydin on erottaa MR1:n JobTrackerin resurssienhallinta- ja tehtävien ajoitustoiminnot, jotka toteutetaan vastaavasti ResourceManager- ja ApplicationMaster-prosessissa. ResourceManager vastaa koko klusterin resurssienhallinnasta ja aikataulusta sovellusten tehtävien ajoitus, tehtävien valvonta ja vikasietoisuus.

3. Lankatehtävän ajoprosessi

  1. Kun asiakas lähettää MR-tehtävän Yarnille, MR-tehtävän resurssit (jako, resurssimääritys, Jar-paketin tiedot) ladataan ensin HDFS:ään.

  2. Asiakas pyytää ResourceManageria käynnistämään ApplicationMasterin.

  3. ResourceManager valitsee NodeManager-solmun, joka ei ole suhteellisen kiireinen, ja pyytää solmua käynnistämään ApplicationMasterin (Container).

  4. Kun ApplicationMaster on käynnistetty, se lataa MR-tehtävän resurssitiedot HDFS:stä paikalliseen ja hakee sitten resursseja ResourceManagerista aloittaakseen MR-tehtävän.

  5. ResourceManager palauttaa resurssiluettelon ApplicationMasterille.

  6. ApplicationMaster kehottaa sitten vastaavaa NodeManageria käynnistämään säilön.

  7. Kun säilö on käynnistetty, se rekisteröidään käänteisesti ApplicationMasteriin.

  8. ApplicationMaster lähettää tehtävän säilöön suoritettavaksi, ja Tehtävä suorittaa kirjoittamamme koodin liiketoimintalogiikan.

4. Lankan kolmen resurssiaikataulun ominaisuudet ja käyttöskenaariot

  • FIFO-aikataulu (First-In-Fist-Out Scheduler) , Lankan yksinkertaisin aikataulu. FIFO Scheduler asettaa lähetetyt hakemukset ensimmäinen sisään, ensimmäinen ulos -jonoon lähetysjärjestyksessä. ylimmän sovelluksen resurssivaatimukset täyttyvät Sovellus varaa resursseja ja niin edelleen. Kun tällainen ajastin ajoittaa resursseja, on mahdollista, että sovellus, jolla on suuria resurssivaatimuksia, vie kaikki klusterin resurssit, mikä aiheuttaa muiden sovellusten eston.

  • Kapasiteetin ajoitus (Capacity Schduler) Se on Yarnissa määritetty oletusresurssien ajoitus, jonka avulla useat vuokralaiset voivat turvallisesti jakaa suuren klusterin. Kapasiteetin ajoitus tukee useiden resurssijonojen määrittämistä. Voit määrittää kunkin resurssijonon vähimmäis- ja enimmäisresurssisuhteet. jokainen resurssijono ottaa käyttöön FIFO-ajoitusstrategian sisäisesti.

  • Reilu aikatauluttajaSe on resurssien ajoitusmenetelmä, joka allokoi langan resurssit reilusti kullekin sovellukselle.

Ero FIFO-, Capacity- ja Fair-resurssien ajoittajien välillä langassa on seuraava:

Lankaresurssien ajoitusominaisuudetSovellettava kohtaus
FIFO-aikataulu

1. Yksinkertainen ja helposti ymmärrettävä, lisäasetuksia ei tarvita.

2. Hakemukset suoritetaan niiden jättöjärjestyksessä (ensimmäinen sisään, ensimmäinen ulos).

3. Ei sovellu jaetuille klusteille, jokaisen sovelluksen on odotettava vuoroaan käynnistyäkseen.

Ei-jaetut klusterit, skenaariot, joilla ei ole korkeita vaatimuksia tehtävien suoritusjärjestykseen. Ei yleensä käytetä tuotantoympäristöissä.

Kapasiteetin ajastin

(käytetään oletuksena avoimen lähdekoodin langassa)

1. Salli useiden organisaatioiden jakaa klusterin resursseja, ja jokaisella organisaatiolla on oma jono.

2. Tukee jonojen hierarkkista jakoa ja jonoresurssien joustavaa konfigurointia.

3. Voit rajoittaa jonon enimmäiskapasiteettia ja vähentää resurssien kilpailua.

Jaetut klusteriskenaariot, joissa useat organisaatiot tai tiimit jakavat samat klusteriresurssit.

Kohtuullinen aikataulu

(CDH käyttää oletuksena)

1. Kohdista resurssit oikeudenmukaisesti kaikille käynnissä oleville sovelluksille ja tue resurssien oikeudenmukaista jakamista useiden jonojen kesken.

2. Tukee dynaamista jonojen luomista ja määritä sovellusten sijoitus sääntöjärjestelmien avulla.

3. Tue resurssien etuostotoimintoa resurssien oikeudenmukaisen jakautumisen varmistamiseksi.

1. Skenaariot, joissa useiden käyttäjien tai organisaatioiden on hankittava resursseja tasapuolisesti jaetussa klusterissa.

2. Ympäristöt, joissa on korkeat vaatimukset jonotason resurssien hallinnasta ja hienojakoisista ajoitusstrategioista.


  • 📢博客主页:https://lansonli.blog.csdn.net
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨