Vad är Distribuerad cache i Hadoop?

Hadoop är ett ramverk som är öppen källkod och använder distribuerad lagring samt behandling av enorma datasätt med HDFS och MapReduce. Den har Namnnoder som lagrar metadata och Datanoder som lagrar de faktiska uppgifterna i HDFS. När vi behöver bearbeta de enorma datasätten görs det av ett program skrivet av användarna och sedan görs behandlingen parallellt i DataNodes. I Hadoop-ramverket finns det vissa filer som MapReduce-jobb ofta behöver. Om det finns antalet kartläggare som körs, varje gång när det krävs att läsa filerna från HDFS, kommer latensen att öka när söktiden också ökar. I stället för att läsa filerna varje gång de behövs kan filerna kopieras och skickas till alla DataNodes. Denna mekanism kallas Distribuerad cache i Hadoop.

Arbeta med distribuerad cache i Hadoop

  • Hadoop kopierar filerna som specificeras av alternativen som –filer, -bibliotek och –arkiv till HDFS när ett jobb startas. Sedan kommer Nodehanteraren att kopiera filerna från HDFS till cachen så att när en uppgift körs kan den få åtkomst till filerna. Filerna kan benämnas lokaliserade när de kopieras till cachen eller den lokala disken.
  • I cachen upprätthålls räkningen för antalet uppgifter som använder varje fil som referens av Nodehanteraren. Referensräkningen för filerna blir 1 innan uppgiften körs. Men efter att uppgiften har körts minskar antalet med 1. När räkningen blir 0 kan filen raderas eftersom den inte används. När en nodens cache når sin bestämda storlek, raderas en fil så att de nya filerna kan rymmas. Storleken på cachen kan ändras i konfigurationsegenskapen. Storleken på den Distribuerade cachen i Hadoop är som standard 10 GB.
  • MapReduce blir långsammare än cache i processen om den har överhead. För att övervinna denna situation kan den distribuerade cachen serialisera objekten men till och med detta har få problem. Reflektion är en process som används för att undersöka informationstypen under körtiden som är mycket långsam. Dessutom blir det mycket svårt i serialisering där det lagrar hela klusternamnet, klassnamnet tillsammans med referenser till andra instanser som finns i medlemsvariablerna.

Implementering av Hadoop i distribuerad cache

  • För att använda den distribuerade cachen för en applikation måste vi se till att för att distribuera en fil över noderna; filen ska vara först tillgänglig. Så vi måste kopiera filerna till HDFS och vi måste också kontrollera att filen är tillgänglig via URI: er som kan hittas genom att komma åt core-site.xml. Sedan kopierar MapReduce-jobbet cache-filen till alla noder innan uppgifterna börjar köras på dessa noder.
  • Så för att implementera distribuerad cache måste vi kopiera filerna till HDFS och vi kan kontrollera om detta görs eller inte via hdfs dfs –put /path/samplefile.jar-kommandot. Jobbskonfigurationen måste också konfigureras för applikationen och detta måste läggas till i förarklassen.
  • De filer som bara är läsbara av ägaren går till privat cache medan den delade cachen har filerna som är världsläsbara. Filen som läggs till i cachen används utan någon begränsning i alla maskiner i klustret som en lokal fil. Nedanstående API-samtal kan användas för att lägga till filerna i cachen.

Koda:

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

Delningen av distribuerade cachefiler på slavnoderna beror på om de distribuerade cache-filerna är privata eller offentliga. De privata distribuerade cache-filerna cachelagras i den lokala katalogen för användaren som är privat för användaren och dessa filer krävs av användarens jobb. När det gäller de offentliga distribuerade cache-filerna cachas filerna i den globala katalogen. Åtkomst till filer i fall av offentlig cache är inställd på ett sätt där de är synliga för alla användare. Dessutom blir den distribuerade cache-filen privat eller offentlig beroende på tillståndet i filsystemet.

Fördelarna med distribuerad cache i Hadoop

Med användningen av den distribuerade cachen läggs många fördelaktiga funktioner till Hadoop-ramverket. Nedan följer fördelarna med att använda distribuerad cache:

1. Distribuerad cache i enstaka fel

I händelse av fel i en nod kommer det inte att göra hela cache-felet. Eftersom den distribuerade cachen körs som en fristående eller oberoende process över de olika noderna. Så om cache-felet inträffar vid en nod betyder det inte att den kompletta cachen också ska misslyckas.

2. Konsekvens av data

Genom att använda Hash-algoritmen kan det bestämmas vilka nyckelvärden som tillhör vilken nod. Dessutom övervakar eller spårar den distribuerade cachen i Hadoop tidsstämpelmodifieringen som görs i cache-filerna och den rapporterar att tills filen inte har utförts bör en fil inte ändras. Så informationen blir aldrig inkonsekvent på grund av det enda tillståndet i cache-kluster.

3. Lagring av komplexa data

Den distribuerade cachen i Hadoop-ramverket ger fördelen av att cache-lagra de skrivskyddade filerna som textfiler, burkfiler osv. Och sedan sända dem till datanoder. På grund av detta lagras en kopia av filen i varje datanod. Med den distribuerade cache-funktionen distribueras och lagras komplexa filer som en burk etc.

Slutsats

Distribuerad cache ger effektivitet eftersom filerna kopieras en gång för varje jobb. Dessutom har den kapacitet att cache arkiv som inte arkiveras på slavar. Användningen av distribuerad cache är en extra bonus och är beroende av utvecklaren för att utnyttja den här funktionen på bästa sätt.

Rekommenderade artiklar

Detta är en guide till Distribuerad cache i Hadoop. Här diskuterar vi vad som distribueras cache i Hadoop, dess arbete, implementering och fördelar. Du kan också gå igenom våra andra relaterade artiklar för att lära dig mer -

  1. Fördelar med Hadoop
  2. Installera Hadoop
  3. Vad är Head in Git?
  4. Apache Hadoop ekosystem
  5. Variabler i JavaScript

Kategori: