Čo je distribuovaná vyrovnávacia pamäť v Hadoope?

Hadoop je framework, ktorý je open-source a používa distribuované úložisko, ako aj spracovanie obrovských množín údajov pomocou HDFS a MapReduce. Má NameNodes, ktoré ukladajú metadáta, a DataNodes, ktoré ukladajú skutočné údaje v HDFS. Keď potrebujeme spracovať obrovské množiny údajov, robí to program napísaný používateľmi a potom sa spracovanie vykoná paralelne v DataNodes. V rámci Hadoop existujú určité súbory, ktoré úlohy MapReduce často potrebujú. Ak je spustený počet mapovačov, zakaždým, keď je potrebné čítať súbory z HDFS, latencia sa zvýši, pretože sa tiež zvýši čas vyhľadávania. Takže namiesto čítania súborov vždy, keď sú potrebné, je možné súbory skopírovať a odoslať do všetkých dátových uzlov. Tento mechanizmus sa v Hadoop nazýva Distribuovaná vyrovnávacia pamäť.

Práca s distribuovanou vyrovnávacou pamäťou v Hadoope

  • Hadoop pri spustení úlohy skopíruje súbory, ktoré sú špecifikované voľbami, ako sú napríklad –files, -libjars a –archives do HDFS. Potom Správca uzlov skopíruje súbory z HDFS do vyrovnávacej pamäte, takže keď sa spustí úloha, má prístup k súborom. Súbory možno označiť ako lokalizované, keď sa skopírujú do vyrovnávacej pamäte alebo na lokálny disk.
  • V pamäti cache sa počet správ, ktoré používajú každý súbor, udržiava ako referencia správcom uzlov. Počet referenčných súborov je 1 pred spustením úlohy. Po spustení úlohy sa však počet zníži o 1. Keď sa počet zmení na 0, súbor sa dá odstrániť, pretože sa nespotrebúva. Keď vyrovnávacia pamäť uzla dosiahne určitú veľkosť, vykoná sa vymazanie súboru, aby sa nové súbory mohli prispôsobiť. Veľkosť vyrovnávacej pamäte sa dá zmeniť v konfiguračnej vlastnosti. Veľkosť distribuovanej vyrovnávacej pamäte v Hadoop je predvolene 10 GB.
  • MapReduce sa stáva pomalším ako medzipamäť v procese, ak má režijné náklady. Na prekonanie tejto situácie môže distribuovaná vyrovnávacia pamäť objekty serializovať, ale aj to má niekoľko problémov. Reflexia je proces používaný na skúmanie typu informácií počas doby chodu, ktorá je veľmi pomalá. Tiež sa stáva veľmi ťažkým v serializácii, kde ukladá celý názov klastra, názov triedy spolu s odkazmi na iné prípady prítomné v členských premenných.

Implementácia Hadoop v distribuovanej vyrovnávacej pamäti

  • Ak chcete použiť distribuovanú vyrovnávaciu pamäť pre aplikáciu, musíme sa ubezpečiť, že na distribúciu súboru medzi uzlami je potrebné; súbor by mal byť najskôr k dispozícii. Musíme teda skopírovať súbory do systému HDFS a tiež musíme skontrolovať, či je súbor prístupný prostredníctvom identifikátorov URI, ktoré nájdete prístupom k core-site.xml. Potom úloha MapReduce skopíruje súbor vyrovnávacej pamäte do všetkých uzlov pred tým, ako sa na týchto uzloch spustia úlohy.
  • Aby sme mohli implementovať distribuovanú vyrovnávaciu pamäť, musíme skopírovať súbory do systému HDFS a môžeme skontrolovať, či sa to deje alebo nie pomocou príkazu hdfs dfs –put /path/samplefile.jar. Pre aplikáciu je tiež potrebné nastaviť konfiguráciu úlohy, ktorú je potrebné pridať do triedy ovládačov.
  • Súbory, ktoré sú čitateľné iba vlastníkom, prechádzajú do súkromnej vyrovnávacej pamäte, zatiaľ čo zdieľaná vyrovnávacia pamäť obsahuje súbory, ktoré sú čitateľné na celom svete. Súbor, ktorý sa pridá do vyrovnávacej pamäte, sa použije ako lokálny súbor na všetkých počítačoch v klastri bez akýchkoľvek obmedzení. Hovory API uvedené nižšie sa dajú použiť na pridanie súborov do vyrovnávacej pamäte.

kód:

DistributedCache.addCacheFile(URI, conf);
DistributedCache.setCacheFiles(URIs, conf);

Zdieľanie distribuovaných súborov vyrovnávacej pamäte na podriadených uzloch závisí od toho, či sú súbory distribuovanej vyrovnávacej pamäte súkromné ​​alebo verejné. Súkromné ​​súbory distribuovanej vyrovnávacej pamäte sa ukladajú do vyrovnávacej pamäte v miestnom adresári používateľa, ktorý je pre používateľa súkromný, a tieto súbory sú vyžadované úlohami používateľa. V prípade verejných distribuovaných súborov vyrovnávacej pamäte sa súbory ukladajú do vyrovnávacej pamäte v globálnom adresári. Prístup k súborom v prípade verejnej vyrovnávacej pamäte je nastavený tak, aby boli viditeľné pre všetkých používateľov. Distribuovaný súbor vyrovnávacej pamäte sa tiež stáva súkromným alebo verejným v závislosti od povolenia v systéme súborov.

Výhody distribuovanej vyrovnávacej pamäte v Hadoop

S použitím distribuovanej vyrovnávacej pamäte sa do rámca Hadoop pridá veľa výhodných funkcií. Nižšie sú uvedené výhody používania distribuovanej vyrovnávacej pamäte:

1. Distribuovaná vyrovnávacia pamäť v jedinom bode zlyhania

V prípade zlyhania uzla nevykoná úplné zlyhanie vyrovnávacej pamäte. Pretože distribuovaná vyrovnávacia pamäť beží ako samostatný alebo nezávislý proces naprieč rôznymi uzlami. Takže ak dôjde k zlyhaniu vyrovnávacej pamäte v jednom uzle, neznamená to, že by sa mala zlyhať aj úplná vyrovnávacia pamäť.

2. Konzistentnosť údajov

Použitím algoritmu hash sa dá určiť, ktoré páry kľúč - hodnota patria do toho uzla. Distribuovaná vyrovnávacia pamäť v Hadoop monitoruje alebo sleduje modifikáciu časovej pečiatky vykonanú v súboroch vyrovnávacej pamäte a uvádza, že kým sa úloha nevykoná, súbor by sa nemal meniť. Dáta preto nikdy nebudú nekonzistentné kvôli jedinému stavu medzipamäte klastra.

3. Ukladanie komplexných údajov

Distribuovaná vyrovnávacia pamäť v rámci Hadoop poskytuje výhodu ukladania súborov určených iba na čítanie do vyrovnávacej pamäte, ako sú textové súbory, súbory jar atď., A potom ich vysiela do dátových uzlov. Z tohto dôvodu je kópia súboru uložená v každom dátovom uzle. Vďaka funkcii distribuovanej vyrovnávacej pamäte sa distribuujú a ukladajú zložité súbory, ako napríklad jar atď.

záver

Distribuovaná vyrovnávacia pamäť poskytuje efektívnosť, pretože súbory sa skopírujú jedenkrát pre každú úlohu. Má tiež schopnosť ukladať do archívu archívy, ktoré nie sú archivované na otrokoch. Použitie distribuovanej vyrovnávacej pamäte je dodatočným bonusom a je na vývojárovi, aby čo najlepšie využil túto funkciu.

Odporúčané články

Toto je sprievodca po Distribuovanej vyrovnávacej pamäti v Hadoop. Tu diskutujeme o tom, čo je distribuovaná vyrovnávacia pamäť v Hadoope, o jej práci, implementácii a výhodách. Viac informácií nájdete aj v ďalších súvisiacich článkoch -

  1. Výhody Hadoop
  2. Nainštalujte program Hadoop
  3. Čo je to Head in Git?
  4. Ekosystém Apache Hadoop
  5. Premenné v JavaScripte

Kategórie: