V tomto tutoriálu vám poskytneme podrobný popis distribuované mezipaměti v Hadoop . Nejprve stručně pochopíme, co je Hadoop, a poté uvidíme, co je Distribuovaná mezipaměť v Hadoopu.
Budeme se také zabývat fungováním a implementací Hadoop Distributed Cache. Konečně v tomto blogu také uvidíme výhody a nevýhody distribuovaného ukládání do mezipaměti v Hadoopu.
Úvod do Hadoop
Je to mechanismus, který poskytuje rámec MapReduce pro ukládání souborů, které aplikace potřebují. Může ukládat do mezipaměti soubory, jako jsou textové/datové soubory pouze pro čtení, a složitější typy, jako jsou archivy, soubory jar atd.
Než začneme s Distributed Cache, proberme si nejprve, co je Hadoop?
Hadoop je open source programovací rámec založený na Javě. Podporuje zpracování a ukládání extrémně velkých datových sad v distribuovaném prostředí. Hadoop se řídí topologií Master-Slave.
Master je NameNode a Slave je DataNode. Datanode ukládá skutečná data vHDFS . A provádí operace čtení a zápisu podle požadavku klienta. Namenode ukládá metadata.
V Apache Hadoop se datové bloky zpracovávají paralelně mezi Datanodes pomocí programu napsaného uživatelem. Pokud chceme přistupovat k některým souborům ze všech Datanodes, pak tento soubor vložíme do distribuované mezipaměti.
Co je distribuovaná mezipaměť v Hadoopu?
Distribuovaná mezipaměť v Hadoop je zařízení poskytované frameworkem MapReduce. Distribuovaná mezipaměť může ukládat soubory do mezipaměti, když to aplikace potřebují. Může ukládat do mezipaměti textové soubory pouze pro čtení, archivy, soubory jar atd.
Jakmile uložíme soubor pro naši úlohu do mezipaměti, Apache Hadoop jej zpřístupní na každém datovém uzlu, kde běží úlohy map/reduce. Můžeme tedy přistupovat k souborům ze všech datových uzlů v naší úloze MapReduce.
Velikost distribuované mezipaměti
Ve výchozím nastavení je velikost distribuované mezipaměti 10 GB. Pokud chceme upravit velikost distribuované mezipaměti, můžeme ji upravit pomocí místní .mezipaměť .velikost.
Implementace
Aplikace, která bude k distribuci souboru používat distribuovanou mezipaměť:
- Nejprve se ujistěte, že je soubor dostupný.
- Poté se také ujistěte, že k souboru lze přistupovat prostřednictvím adres URL. Adresy URL mohou být buď hdfs:// nebo https://.
Po výše uvedeném ověření, pokud je soubor přítomen na uvedených adresách URL. Uživatel Hadoop uvádí, že se jedná o soubor mezipaměti distribuované mezipaměti. Úloha Hadoop MapReduce zkopíruje soubor mezipaměti na všechny uzly před zahájením úloh na těchto uzlech.
Postupujte podle níže uvedeného postupu:
a) Zkopírujte požadovaný soubor do HDFS:
$ hdfs dfs-put/user/dataflair/lib/jar_file.jar
b) Nastavte JobConf aplikace:
DistributedCache.addFileToClasspath(nová cesta („/user/dataflair/lib/jar-file.jar“), conf).
c) Přidejte jej do třídy Driver.
Výhody distribuované mezipaměti
- Jeden bod selhání- Distribuovaná mezipaměť běží napříč mnoha uzly. Selhání jednoho uzlu tedy nevede k úplnému selhání mezipaměti.
- Konzistence dat- Sleduje časová razítka změn souborů mezipaměti. Poté upozorní, že soubory by se neměly měnit, dokud se úloha nespustí. Pomocí hashovacího algoritmu může modul mezipaměti vždy určit, na kterém uzlu se konkrétní pár klíč–hodnota nachází. Jak víme, vždy existuje jeden stav clusteru mezipaměti, takže nikdy není nekonzistentní.
- Ukládání komplexních dat – Distribuuje jednoduchý textový soubor pouze pro čtení. Ukládá také složité typy, jako jsou sklenice, archivy. Tyto úspěchy jsou pak v podřízeném uzlu archivovány.
Nevýhoda distribuované mezipaměti
Distribuovaná mezipaměť v Hadoopu má režii, která ji zpomalí než mezipaměť v procesu:
a) Serializace objektů – Musí serializovat objekty. Ale mechanismus serializace má dva hlavní problémy:
- Velmi objemné – Serializace ukládá úplný název třídy, klastr a podrobnosti sestavení. Také ukládá odkazy na jiné instance v členských proměnných. To vše dělá serializaci velmi objemnou.
- Velmi pomalé – Serializace využívá reflexi ke kontrole typu informací za běhu. Reflexe je ve srovnání s předkompilovaným kódem velmi pomalý proces.
Závěr
Na závěr Distributed cache lze říci, že jde o zařízení poskytované MapReduce. Ukládá soubory do mezipaměti, když to aplikace potřebují. Může ukládat do mezipaměti textové soubory pouze pro čtení, archivy, soubory jar atd.
Ve výchozím nastavení je velikost distribuované mezipaměti 10 GB. Pokud najdete tento blog nebo máte jakýkoli dotaz týkající se Distributed Cache v Hadoopu, neváhejte se s námi podělit.