Co to jest rozproszona pamięć podręczna w Hadoop?

Hadoop to platforma o otwartym kodzie źródłowym, wykorzystująca rozproszoną pamięć masową, a także przetwarzanie ogromnych zbiorów danych przy użyciu HDFS i MapReduce. Ma NameNodes, które przechowują metadane i DataNodes, które przechowują rzeczywiste dane w HDFS. Kiedy musimy przetwarzać ogromne zbiory danych, robi to program napisany przez użytkowników, a następnie przetwarzanie odbywa się równolegle w DataNodes. W ramach Hadoop istnieją pewne pliki, które są często potrzebne w zadaniach MapReduce. Jeśli jest uruchomiona liczba programów odwzorowujących, za każdym razem, gdy konieczne jest odczytanie plików z HDFS, opóźnienie zwiększy się wraz ze wzrostem czasu wyszukiwania. Zamiast więc odczytywać pliki za każdym razem, gdy są potrzebne, pliki można skopiować i wysłać do wszystkich węzłów danych. Ten mechanizm nazywa się Distributed Cache w Hadoop.

Działanie rozproszonej pamięci podręcznej w Hadoop

  • Hadoop kopiuje pliki określone przez opcje, takie jak –files, -libjars i –archives na HDFS po uruchomieniu zadania. Następnie Node Manager skopiuje pliki z HDFS do pamięci podręcznej, aby po uruchomieniu zadania mógł uzyskać dostęp do plików. Pliki mogą być określane jako zlokalizowane, ponieważ są kopiowane do pamięci podręcznej lub na dysk lokalny.
  • W pamięci podręcznej liczba zadań korzystających z każdego pliku jest utrzymywana jako odniesienie przez menedżera węzłów. Liczba referencji plików wynosi 1 przed uruchomieniem zadania. Ale po uruchomieniu zadania liczba jest zmniejszana o 1. Gdy liczba zmienia się na 0, plik można usunąć, ponieważ nie jest używany. Gdy pamięć podręczna węzła osiągnie określony rozmiar, usuwanie pliku odbywa się, aby można było uwzględnić nowe pliki. Rozmiar pamięci podręcznej można zmienić we właściwości konfiguracji. Rozmiar rozproszonej pamięci podręcznej w Hadoop wynosi domyślnie 10 GB.
  • MapReduce staje się wolniejszy niż pamięć podręczna w trakcie przetwarzania, jeśli ma narzut. W celu przezwyciężenia tej sytuacji rozproszona pamięć podręczna może serializować obiekty, ale nawet to ma kilka problemów. Refleksja jest procesem stosowanym do badania typu informacji w czasie wykonywania, który jest bardzo wolny. Również serializacja staje się bardzo trudna, gdy przechowuje pełną nazwę klastra, nazwę klasy wraz z odniesieniami do innych instancji obecnych w zmiennych składowych.

Implementacja Hadoop w Distributed Cache

  • Aby użyć rozproszonej pamięci podręcznej dla aplikacji, musimy upewnić się, że w celu dystrybucji pliku między węzłami; plik powinien być najpierw dostępny. Musimy więc skopiować pliki do HDFS, a także musimy sprawdzić, czy plik jest dostępny za pośrednictwem identyfikatorów URI, które można znaleźć, uzyskując dostęp do pliku core-site.xml. Następnie zadanie MapReduce kopiuje plik pamięci podręcznej do wszystkich węzłów, zanim zadania zaczną działać na tych węzłach.
  • Aby więc wdrożyć rozproszoną pamięć podręczną, musimy skopiować pliki na HDFS i możemy sprawdzić, czy jest to zrobione, czy nie za pomocą polecenia hdfs dfs –put /path/samplefile.jar. Ponadto należy skonfigurować konfigurację zadania dla aplikacji i należy to dodać do klasy sterowników.
  • Pliki, które tylko czytelnik może odczytać, przechodzą do prywatnej pamięci podręcznej, podczas gdy udostępniona pamięć podręczna zawiera pliki, które można odczytać z całego świata. Plik dodany do pamięci podręcznej jest wykorzystywany bez ograniczeń na wszystkich komputerach w klastrze jako plik lokalny. Poniższe wywołania API można wykorzystać do dodania plików do pamięci podręcznej.

Kod:

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

Udostępnianie rozproszonych plików pamięci podręcznej w węzłach podrzędnych zależy od tego, czy pliki rozproszonej pamięci podręcznej są prywatne, czy publiczne. Prywatne pliki rozproszonej pamięci podręcznej są buforowane w lokalnym katalogu użytkownika, który jest prywatny dla użytkownika i te pliki są wymagane przez zadania użytkownika. W przypadku publicznych rozproszonych plików pamięci podręcznej pliki są buforowane w katalogu globalnym. Dostęp do plików w przypadku publicznej pamięci podręcznej jest skonfigurowany w taki sposób, aby były widoczne dla wszystkich użytkowników. Ponadto rozproszony plik pamięci podręcznej staje się prywatny lub publiczny, w zależności od uprawnień w systemie plików.

Korzyści z rozproszonej pamięci podręcznej w Hadoop

Dzięki wykorzystaniu rozproszonej pamięci podręcznej do frameworku Hadoop dodano wiele korzystnych funkcji. Poniżej przedstawiono zalety korzystania z rozproszonej pamięci podręcznej:

1. Rozproszona pamięć podręczna w pojedynczym punkcie awarii

W przypadku awarii węzła nie spowoduje to całkowitej awarii pamięci podręcznej. Ponieważ rozproszona pamięć podręczna działa jako samodzielny lub niezależny proces w różnych węzłach. Jeśli więc awaria pamięci podręcznej wystąpi w jednym węźle, nie oznacza to, że pełna pamięć podręczna również powinna zawieść.

2. Spójność danych

Za pomocą algorytmu skrótu można ustalić, które pary klucz-wartość należą do którego węzła. Ponadto rozproszona pamięć podręczna w Hadoop monitoruje lub śledzi modyfikację znaczników czasu wykonaną w plikach pamięci podręcznej i zgłasza, że ​​do czasu wykonania zadania plik nie powinien się zmienić. Tak więc dane nigdy nie stają się niespójne z powodu pojedynczego stanu klastra pamięci podręcznej.

3. Przechowywanie złożonych danych

Rozproszona pamięć podręczna w środowisku Hadoop ma tę zaletę, że buforuje pliki tylko do odczytu, takie jak pliki tekstowe, pliki jar itp., A następnie przesyła je do węzłów danych. Z tego powodu kopia pliku jest przechowywana w każdym węźle danych. Dzięki funkcji rozproszonej pamięci podręcznej złożone pliki, takie jak słoik itp., Są dystrybuowane i przechowywane.

Wniosek

Rozproszona pamięć podręczna zapewnia wydajność, ponieważ pliki są kopiowane jeden raz dla każdego zadania. Ponadto może buforować archiwa, które nie są archiwizowane na urządzeniach slave. Korzystanie z rozproszonej pamięci podręcznej stanowi dodatkowy bonus i zależy od programisty, aby jak najlepiej wykorzystać tę funkcję.

Polecane artykuły

To jest przewodnik po Distributed Cache w Hadoop. Tutaj omawiamy Czym jest rozproszona pamięć podręczna w Hadoop, jej praca, implementacja i zalety. Możesz również przejrzeć nasze inne powiązane artykuły, aby dowiedzieć się więcej -

  1. Zalety Hadoop
  2. Zainstaluj Hadoop
  3. Co to jest Head in Git?
  4. Ekosystem Apache Hadoop
  5. Zmienne w JavaScript

Kategoria: