Co je distribuovaná mezipaměť v Hadoopu?

Hadoop je framework, který je open-source a používá distribuované úložiště a zpracování obrovských datových souborů pomocí HDFS a MapReduce. Má NameNodes, které ukládají metadata, a DataNodes, které ukládají skutečná data v HDFS. Když potřebujeme zpracovat obrovské datové sady, provádí se to programem napsaným uživateli a pak se zpracování provádí paralelně v DataNodes. V rámci Hadoop existují určité soubory, které úlohy MapReduce často potřebují. Pokud je spuštěn počet mapovačů, pokaždé, když je vyžadováno čtení souborů z HDFS, latence se zvýší, protože se také zvýší doba vyhledávání. Takže namísto čtení souborů pokaždé, když jsou soubory potřeba, je možné je zkopírovat a odeslat do všech DataNodes. Tento mechanismus se v Hadoopu nazývá Distribuovaná mezipaměť.

Práce s distribuovanou mezipamětí v Hadoopu

  • Hadoop zkopíruje soubory, které jsou specifikovány možnostmi, jako jsou např. –Files, -libjars a –archives, na HDFS při spuštění úlohy. Potom Správce uzlů zkopíruje soubory z HDFS do mezipaměti, takže při spuštění úlohy bude mít přístup k souborům. Soubory lze označit jako lokalizované, když jsou zkopírovány do mezipaměti nebo na místní disk.
  • V mezipaměti je počet úloh pomocí každého souboru udržován jako reference Správcem uzlů. Počet referenčních souborů se stane 1 před spuštěním úlohy. Po spuštění úlohy se však počet sníží o 1. Když se počet změní na 0, lze soubor odstranit, protože se nevyužívá. Když mezipaměť uzlu dosáhne určité velikosti, provede se vymazání souboru, aby bylo možné nové soubory pojmout. Velikost mezipaměti lze změnit ve vlastnosti konfigurace. Velikost distribuované mezipaměti v Hadoopu je ve výchozím nastavení 10 GB.
  • MapReduce se stává pomalejší než mezipaměť v procesu, pokud má režii. Za účelem překonání této situace může distribuovaná mezipaměť serializovat objekty, ale i to má několik problémů. Reflexe je proces používaný k prozkoumání typu informace během doby běhu, která je velmi pomalá. Také se stává velmi obtížným v serializaci, kde ukládá úplný název klastru, název třídy spolu s odkazy na další instance přítomné v členských proměnných.

Implementace Hadoop v distribuované mezipaměti

  • Chcete-li použít distribuovanou mezipaměť pro aplikaci, musíme se ujistit, že za účelem distribuce souboru přes uzly; soubor by měl být nejprve k dispozici. Musíme tedy zkopírovat soubory do HDFS a také musíme zkontrolovat, zda je soubor přístupný prostřednictvím URI, které lze najít přístupem na core-site.xml. Poté úloha MapReduce zkopíruje soubor mezipaměti do všech uzlů, než se na těchto uzlech spustí úlohy.
  • Abychom mohli implementovat distribuovanou mezipaměť, musíme zkopírovat soubory do HDFS a můžeme zkontrolovat, zda je to provedeno nebo ne pomocí příkazu hdfs dfs –put /path/samplefile.jar. Konfigurace úlohy musí být také nastavena pro aplikaci, což je třeba přidat do třídy ovladačů.
  • Soubory, které jsou čitelné pouze majitelem, přejdou do soukromé mezipaměti, zatímco sdílená mezipaměť obsahuje soubory, které jsou čitelné na celém světě. Soubor, který se přidá do mezipaměti, se použije bez jakéhokoli omezení na všech počítačích v clusteru jako místní soubor. Volání API níže uvedená lze použít k přidání souborů do mezipaměti.

Kód:

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

Sdílení distribuovaných souborů mezipaměti na podřízených uzlech závisí na tom, zda jsou soubory distribuované mezipaměti soukromé nebo veřejné. Soukromé soubory distribuované mezipaměti jsou ukládány do mezipaměti v místním adresáři uživatele, který je pro uživatele soukromý, a tyto soubory jsou vyžadovány úlohami uživatele. V případě veřejných distribuovaných souborů mezipaměti se soubory ukládají do mezipaměti v globálním adresáři. Přístup k souborům v případě veřejné mezipaměti je nastaven tak, aby byly viditelné pro všechny uživatele. Distribuovaný soubor mezipaměti se také stane soukromým nebo veřejným v závislosti na povolení v systému souborů.

Výhody distribuované mezipaměti v Hadoopu

S využitím distribuované mezipaměti se do rámce Hadoop přidá řada výhodných funkcí. Níže jsou uvedeny výhody použití distribuované mezipaměti:

1. Distribuovaná mezipaměť v jednom bodě selhání

V případě selhání uzlu neprovede úplné selhání mezipaměti. Protože distribuovaná mezipaměť běží jako samostatný nebo nezávislý proces napříč různými uzly. Pokud tedy dojde k selhání mezipaměti v jednom uzlu, neznamená to, že by měla selhat i úplná mezipaměť.

2. Konzistence dat

Použitím algoritmu hash může být určeno, které páry klíč-hodnota patří do kterého uzlu. Distribuovaná mezipaměť v Hadoop také sleduje nebo sleduje úpravu časových razítek provedených v souborech mezipaměti a hlásí, že dokud se úloha nespustí, soubor by se neměl měnit. Data tedy nikdy nejsou nekonzistentní kvůli jedinému stavu mezipaměti klastru.

3. Ukládání komplexních dat

Distribuovaná mezipaměť v rámci Hadoop poskytuje výhodu ukládání do mezipaměti soubory pouze pro čtení, jako jsou textové soubory, soubory jar atd., A poté je vysílá do datových uzlů. Z tohoto důvodu je kopie souboru uložena v každém datovém uzlu. S funkcí distribuované mezipaměti jsou distribuovány a ukládány složité soubory, jako je jar atd.

Závěr

Distribuovaná mezipaměť poskytuje účinnost, protože soubory jsou zkopírovány jednou pro každou úlohu. Má také schopnost ukládat do mezipaměti archivy, které nejsou archivovány na otrokech. Využití distribuované mezipaměti je další bonus a závisí na vývojáři, aby tuto funkci co nejlépe využil.

Doporučené články

Toto je průvodce distribuovanou mezipamětí v Hadoopu. Zde diskutujeme o tom, co je distribuovaná mezipaměť v Hadoopu, její práci, implementaci a výhodách. Další informace naleznete také v dalších souvisejících článcích -

  1. Výhody Hadoop
  2. Nainstalujte Hadoop
  3. Co je Head in Git?
  4. Ekosystém Apache Hadoop
  5. Proměnné v JavaScriptu

Kategorie: