Mikä Hadoop on? Archirakenne, ekosysteemi ja komponentit

⚡ Älykäs yhteenveto

Apache Hadoop on avoimen lähdekoodin kehys, joka tallentaa valtavia tietojoukkoja useiden laitteistoklustereiden kesken ja siirtää prosessointilogiikan dataan, jotta analyysi skaalautuu lisäämällä edullisia solmuja suurempien palvelimien sijaan.

  • 🔘 Ydinmoduulit: HDFS tallentaa lohkot, MapReduce käsittelee ne ja YARN aikatauluttaa klusteriresurssit Hadoop 2.x:stä eteenpäin.
  • ☑️ Tietojen sijainti: Käännetty prosessointilogiikka siirtyy lohkoa hallussaan pitävään solmuun, joten verkon kaistanleveyttä kuluu huomattavasti vähemmän.
  • Ekosysteemi: Hive, HBase, Mahout, Sqoop, Flume ja ZooKeeper laajentavat ydintä SQL:llä, NoSQL:llä, tiedonkeruulla ja koordinoinnilla.
  • 🧪 Master-slave-asettelu: Nimisolmu tracks nimiavaruuden metatiedot, kun taas DataNode-solmut säilyttävät lohkoja ja raportoivat niiden tilan takaisin.
  • 🛠️ Vikasietoisuus: Jokainen lohko replikoidaan solmujen välillä, joten yksikään vikaantunut kone ei koskaan pysäytä käynnissä olevaa työtä.
  • ⚠️ Verkkotopologia: Hadoop mallintaa klusterin datakeskusten, räkkien ja solmujen puuna pitääkseen liikenteen paikallisena.

Mikä on Hadoop-arkkitehtuuri, ekosysteemi ja komponentit

Mikä Hadoop on?

Apache Hadoop on avoimen lähdekoodin ohjelmistokehys, jota käytetään hajautetussa laskentaympäristössä suoritettavien tietojenkäsittelysovellusten kehittämiseen.

Hadoopilla rakennettuja sovelluksia ajetaan suurilla tietojoukoilla, jotka on jaettu yksinkertaisten tietokoneiden klustereihin. Perustietokoneet ovat edullisia ja laajalti saatavilla. Ne ovat hyödyllisiä pääasiassa suuremman laskentatehon saavuttamiseksi alhaisilla kustannuksilla.

Samoin kuin henkilökohtaisen tietokoneen paikallisessa tiedostojärjestelmässä olevat tiedot, Hadoopissa tiedot sijaitsevat hajautetussa tiedostojärjestelmässä, jota kutsutaan Hadoopin hajautettu tiedostojärjestelmäKäsittelymalli perustuu 'Data Locality' konsepti, jossa laskennallinen logiikka lähetetään tietoja sisältäville klusterisolmuille (palvelimille). Tämä laskennallinen logiikka on yksinkertaisesti käännetty versio ohjelmasta, joka on kirjoitettu korkean tason kielellä, kuten JavaTällainen ohjelma käsittelee tallennettuja tietoja Hadoop HDFS.

Tiedätkö? Tietokoneklusteri koostuu useista toisiinsa kytketyistä prosessointiyksiköistä (tallennuslevy + prosessori), jotka toimivat yhtenä järjestelmänä.

Versio 3.5.0, joka julkaistiin 2. huhtikuuta 2026, on nykyinen vakaa julkaisu; versio 3.4 saa edelleen ylläpitopäivityksiä.

Hadoop-ekosysteemi ja komponentit

Alla oleva kaavio näyttää Hadoop-ekosysteemin eri komponentit ryhmiteltynä niiden suorittaman tehtävän mukaan – tallennus, käsittely sekä niitä ympäröivät kysely-, käsittely- ja koordinointityökalut.

Hadoop-ekosysteemikaavio, joka näyttää HDFS:n, MapReducen ja ympäröivät Apache-projektit

Apache Hadoop koostuu kahdesta osaprojektista –

  1. Hadoop MapReduce: MapReduce on laskennallinen malli ja ohjelmistokehys Hadoopilla ajettavien sovellusten kirjoittamiseen. Nämä MapReduce-ohjelmat pystyvät käsittelemään valtavia tietoja rinnakkain suurissa laskentasolmuryhmissä.
  2. HDFS (Hadoopin hajautettu tiedostojärjestelmä): HDFS huolehtii Hadoop-sovellusten tallennusosasta. MapReduce-sovellukset kuluttavat dataa HDFS:stä. HDFS luo useita kopioita tietolohkoista ja jakaa ne klusterin laskentasolmuihin. Tämä jakauma mahdollistaa luotettavat ja erittäin nopeat laskennat.

Nykyisissä julkaisuissa on kaksi lisäydinmoduulia. Hadoop LANKA, lisätty Hadoop 2.x:ssä, aikatauluttaa klusterin työskentelyn ja Hadoop Common pitää hallussaan jaettua Java kirjastot, joista jokainen moduuli on riippuvainen. YARN on se, mikä antaa moottoreille, kuten SparkTez ja Flink toimivat MapReducen rinnalla.

Vaikka Hadoop tunnetaan parhaiten MapReducesta ja sen hajautetusta tiedostojärjestelmästä HDFS, termiä käytetään myös useista siihen liittyvistä projekteista, jotka kuuluvat hajautetun laskennan ja laajamittaisen tiedonkäsittelyn piiriin. Muita Apachen Hadooppiin liittyviä projekteja ovat Hive, HBase, Mahout, Sqoop, Flumeja ZooKeeper.

Hadoop Archirakenne

Hadoopilla on master-slave-arkkitehtuuri tiedontallennukseen ja hajautettuun tiedonkäsittelyyn käyttäen MapReduce ja HDFS-metodit. Alla olevassa kaaviossa roolit on sijoitettu vierekkäin siten, että tallennuskerros on toisella puolella ja käsittelykerros toisella.

Korkean tason Hadoop-arkkitehtuurikaavio, joka näyttää NameNode-, DataNode-, pääsolmu- ja orjasolmut

Korkean tason Hadoop Archirakenne

NameNode

NameNode tallentaa kaikkien nimiavaruudessa käytettyjen tiedostojen ja hakemistojen metatiedot, mukaan lukien tiedot siitä, mistä lohkoista kukin tiedosto koostuu ja missä kyseiset lohkot sijaitsevat.

DataNode

DataNode hallitsee HDFS-solmun tilaa ja antaa sinun olla vuorovaikutuksessa sen tallentamien lohkojen kanssa, raportoiden takaisin NameNodelle säännöllisillä lohkoraporteilla ja sykkeillä.

MasterNode

Pääsolmun avulla voit suorittaa tietojen rinnakkaisen käsittelyn Hadoop MapReducen avulla.

Orjasolmu

Apusolmut ovat Hadoop-klusterin lisäkoneita, joiden avulla voit tallentaa tietoja ja suorittaa monimutkaisia ​​laskelmia. Lisäksi jokainen apusolmu suorittaa tehtävänTracker ja DataNode. Tämän avulla voit synkronoida prosessit NameNoden ja Job-solmun kanssa.Tracker vastaavasti.

Hadoopissa master- tai slave-järjestelmät voidaan asentaa pilveen tai paikallisesti.

Yksi nimihuomautus: JobTracker ja TehtäväTracker kuuluvat ensimmäisen sukupolven MapReduce-ajonaikaiseen ympäristöön (MRv1). Hadoop 2.x:stä eteenpäin YARN jakaa tehtävänsä klusterinlaajuisen Resurssienhallitsijatai Solmujen hallinta työntekijää kohden ja yksi ApplicationMaster työtä kohden. NameNode ja DataNode pysyvät muuttumattomina.

Hadoopin ominaisuudet

Sopii Big Data -analyysiin

As Big Data koska se on luonteeltaan hajautettua ja jäsentämätöntä, Hadoop-klusterit sopivat parhaiten Big Datan analysointiin. Koska laskentayksiköihin virtaa prosessointilogiikka (ei itse data), verkon kaistanleveyttä kuluu vähemmän. Tätä kutsutaan datapaikan käsite, ja se auttaa lisäämään Hadoop-pohjaisten sovellusten tehokkuutta.

skaalautuvuus

Hadoop-klustereita voidaan helposti skaalata mihin tahansa pisteeseen lisäämällä klusterisolmuja, mikä mahdollistaa Big Datan kasvun. Skaalaus ei myöskään vaadi muutoksia sovelluslogiikkaan.

Vikasietoisuus

Hadoop-ekosysteemissä on ominaisuus, jolla syötetiedot voidaan replikoida muihin klusterisolmuihin. Tällä tavoin klusterisolmun vikaantumisen sattuessa tiedonkäsittelyä voidaan silti jatkaa käyttämällä toisessa klusterisolmussa tallennettuja tietoja. HDFS säilyttää oletusarvoisesti kolme kopiota jokaisesta lohkosta, minkä arvon määrittää... dfs.replication ominaisuutta, ja NameNode replikoi uudelleen kaikki lohkot, jotka putoavat kyseisen määrän alapuolelle.

Verkkotopologia Hadoopissa

Verkon topologia (järjestely) vaikuttaa Hadoop-klusterin suorituskykyyn klusterin koon kasvaessa. Suorituskyvyn lisäksi on huolehdittava myös korkeasta käytettävyydestä ja vikojen käsittelystä. Tämän saavuttamiseksi Hadoop-klusterin muodostamisessa hyödynnetään verkkotopologiaa.

Alla oleva puu näyttää, miten kyseinen järjestely on mallinnettu, datakeskuksesta aina kunkin räkin sisällä oleviin solmuihin asti.

Hadoop-verkon topologiapuu, jossa on datakeskus, räkit ja solmut, joita käytetään solmujen välisen etäisyyden mittaamiseen

Tyypillisesti verkon kaistanleveys on tärkeä tekijä, joka on otettava huomioon mitä tahansa verkkoa muodostettaessa. Koska kaistanleveyden mittaaminen voi kuitenkin olla vaikeaa, Hadoopissa verkko esitetään puuna, ja tämän puun solmujen välistä etäisyyttä (hyppyjen lukumäärää) pidetään tärkeänä tekijänä Hadoop-klusterin muodostumisessa. Tässä kahden solmun välinen etäisyys on yhtä suuri kuin niiden etäisyyksien summa lähimpään yhteiseen esi-isäänsä.

Hadoop-klusteri koostuu datakeskuksesta, räkistä ja solmusta, joka itse asiassa suorittaa töitä. Tässä datakeskus koostuu räkeistä ja räkki koostuu solmuista. Prosessien käytettävissä oleva verkon kaistanleveys vaihtelee prosessien sijainnin mukaan. Toisin sanoen käytettävissä oleva kaistanleveys pienenee, kun siirrytään poispäin...

  • Prosessit samassa solmussa
  • Eri solmut samassa telineessä
  • Solmut saman datakeskuksen eri telineissä
  • Solmut eri datakeskuksissa

Telinetietoisuus käyttää samaa puuta: HDFS sijoittaa replikat useampaan kuin yhteen telineeseen, joten telinekytkimen menettäminen ei vie kaikkia datan kopioita mukanaan.

UKK

Versio 3.5.0, joka julkaistiin 2. huhtikuuta 2026, on 3.5-linjan ensimmäinen vakaa julkaisu ja tavanomainen valinta uusille klustereille. 3.4-linjaa ylläpidetään edelleen, jos tarvitset pidempään vakiintuneen haaran.

Kyllä. Hadoop tukee erillistä tilaa, joka toimii yhtenä Java prosessi ilman daemoneja ja pseudo-hajautettu tila, jossa jokainen daemon toimii erikseen yhdellä isännällä. Molemmat on tarkoitettu oppimiseen ja testaukseen, eivät tuotantoon.

Työhistorian perusteella koulutetut mallit ennustavat suoritusaikoja, suosittelevat säilökokoja ja merkitsevät datan vääristymiä ennen työn päättymistä. Samankaltaiset mallit skannaavat NameNode- ja DataNode-lokeja havaitakseen vialliset levyt ja käyttökelvottomat räkit aikaisemmin kuin kynnysarvohälytykset.

Se nopeuttaa vakiomuotoisia rakenteita: mapper- ja reduktorirunkoja, työajurien konfigurointia ja XML-ominaisuuslohkoja. Tarkista aina luotu koodi käyttämääsi API-versiota vasten, koska Copilot sekoittaa vanhaa mapred- ja uudempaa mapreduce-pakettia.

Oletusarvoisesti kolme, joita ohjaa dfs.replication. Yksi replika jää kirjoitussolmulle, toinen siirtyy eri telineeseen ja kolmas liittyy toiseen telineeseen. NameNode palauttaa kaikki lohkot, jotka jäävät kohteen alapuolelle.

On edelleen yleistä, että petatavutason erätallennuksen on pysyttävä omalla laitteistolla. Suurin osa uusista prosessoinneista kirjoitetaan Spark tai Flink, jotka toimivat YARN-alustalla, joten HDFS säilyy usein tallennuskerroksena MapReducen poistamisen jälkeen.

YARN on Hadoop 2.x:ssä esitelty resurssienhallinta. Se erottaa klusteriajoituksen MapReduce-ohjelmointimallista, joka poisti Job-funktion.Tracpullonkaula ja anna moottoreiden, kuten SparkTez ja Flink jakavat yhden klusterin.

Java on natiivi. Hadoop Streaming antaa minkä tahansa standardisyötettä lukevan suoritettavan tiedoston toimia mapperina tai reduktorina, joten Python, Ruby, Perl ja C++ ovat kaikki käyttökelpoisia, ja Hive lisää SQL:n kaltaisen kerroksen samojen tietojen päälle.

Tiivistä tämä viesti seuraavasti: