HBase
 sql >> Baza danych >  >> NoSQL >> HBase

Wprowadzenie do rozproszonej pamięci podręcznej w Hadoop

W tym samouczku przedstawimy szczegółowy opis rozproszonej pamięci podręcznej w Hadoop . Przede wszystkim krótko zrozumiemy, czym jest Hadoop, a następnie zobaczymy, czym jest rozproszona pamięć podręczna w Hadoop.

Omówimy również działanie i wdrażanie rozproszonej pamięci podręcznej Hadoop. W końcu na tym blogu zobaczymy również zalety i wady rozproszonego buforowania w Hadoop.

Wprowadzenie do Hadoop

Jest to mechanizm, który framework MapReduce udostępnia do buforowania plików potrzebnych aplikacjom. Może buforować pliki, takie jak pliki tekstowe/dane tylko do odczytu i bardziej złożone typy, takie jak archiwa, pliki jar itp.

Zanim zaczniemy od rozproszonej pamięci podręcznej, omówmy najpierw, czym jest Hadoop?

Hadoop jest open-source, frameworkiem programistycznym opartym na Javie. Obsługuje przetwarzanie i przechowywanie ekstremalnie dużych zbiorów danych w środowisku rozproszonym. Hadoop podąża za topologią Master-Slave.

Master to NameNode, a Slave to DataNode. Datanode przechowuje rzeczywiste dane w HDFS . I wykonuje operacje odczytu i zapisu zgodnie z żądaniem dla klienta. Namenode przechowuje metadane.

W Apache Hadoop porcje danych są przetwarzane równolegle między Datanodami za pomocą programu napisanego przez użytkownika. Jeśli chcemy uzyskać dostęp do niektórych plików ze wszystkich Datanodów, umieścimy ten plik w rozproszonej pamięci podręcznej.

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

Rozproszona pamięć podręczna w Hadoop to funkcja udostępniana przez framework MapReduce. Rozproszona pamięć podręczna może buforować pliki w razie potrzeby przez aplikacje. Może buforować tylko do odczytu pliki tekstowe, archiwa, pliki jar itp.

Po zbuforowaniu pliku dla naszego zadania Apache Hadoop udostępni go na każdym węźle danych, w którym uruchomione są zadania map/reduce. W ten sposób możemy uzyskać dostęp do plików ze wszystkich węzłów danych w naszym zadaniu MapReduce.

Rozmiar rozproszonej pamięci podręcznej

Domyślnie rozmiar rozproszonej pamięci podręcznej wynosi 10 GB. Jeśli chcemy dostosować rozmiar rozproszonej pamięci podręcznej, możemy dostosować za pomocą lokalnego .pamięć podręczna .rozmiar.

Wdrożenie

Aplikacja, która będzie używać rozproszonej pamięci podręcznej do dystrybucji pliku:

  • Najpierw należy upewnić się, że plik jest dostępny.
  • Następnie upewnij się również, że do pliku można uzyskać dostęp za pośrednictwem adresów URL. Adresami URL mogą być hdfs:// lub https://.

Po powyższej walidacji, jeśli plik znajduje się na wspomnianych adresach URL. Użytkownik Hadoop wspomina, że ​​jest to plik pamięci podręcznej do rozproszonej pamięci podręcznej. Zadanie Hadoop MapReduce skopiuje plik pamięci podręcznej we wszystkich węzłach przed rozpoczęciem zadań na tych węzłach.

Postępuj zgodnie z poniższym procesem:

a) Skopiuj wymagany plik do HDFS:

$ hdfs dfs-put/user/dataflair/lib/jar_file.jar

b) Skonfiguruj JobConf aplikacji:

DistributedCache.addFileToClasspath(nowa ścieżka („/user/dataflair/lib/jar-file.jar”), conf).

c) Dodaj go w klasie Driver.

Zalety rozproszonej pamięci podręcznej

  • Pojedynczy punkt awarii- Jako rozproszona pamięć podręczna działa w wielu węzłach. Dlatego awaria pojedynczego węzła nie skutkuje całkowitą awarią pamięci podręcznej.
  • Spójność danych- Śledzi znaczniki czasu modyfikacji plików pamięci podręcznej. Następnie powiadamia, że ​​pliki nie powinny się zmieniać, dopóki zadanie nie zostanie wykonane. Używając algorytmu mieszającego, aparat pamięci podręcznej zawsze może określić, w którym węźle znajduje się konkretna wartość klucz-wartość. Jak wiemy, klaster pamięci podręcznej zawsze występuje w jednym stanie, więc nigdy nie jest niespójny.
  • Przechowuj złożone dane – Rozprowadza prosty plik tekstowy tylko do odczytu. Przechowuje również złożone typy, takie jak słoiki, archiwa. Te osiągnięcia są następnie archiwizowane w węźle podrzędnym.

Wady rozproszonej pamięci podręcznej

Rozproszona pamięć podręczna w Hadoop ma narzut, który sprawi, że będzie wolniejszy niż pamięć podręczna w procesie:

a) Serializacja obiektów – Musi serializować obiekty. Jednak mechanizm serializacji ma dwa główne problemy:

  • Bardzo nieporęczne – Serializacja przechowuje pełną nazwę klasy, klaster i szczegóły dotyczące zestawu. Przechowuje również odniesienia do innych wystąpień w zmiennych składowych. Wszystko to sprawia, że ​​serializacja jest bardzo obszerna.
  • Bardzo wolno – Serializacja wykorzystuje odbicie do sprawdzania typu informacji w czasie wykonywania. Odbicie to bardzo powolny proces w porównaniu z kodem wstępnie skompilowanym.

Wniosek

Podsumowując Distributed cache, możemy powiedzieć, że jest to funkcja udostępniona przez MapReduce. W razie potrzeby przechowuje pliki w pamięci podręcznej. Może buforować pliki tekstowe tylko do odczytu, archiwa, pliki jar itp.

Domyślnie rozmiar rozproszonej pamięci podręcznej wynosi 10 GB. Jeśli znajdziesz tego bloga lub masz jakiekolwiek pytania związane z rozproszoną pamięcią podręczną w Hadoop, możesz się z nami podzielić.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Wzorce architektoniczne do przetwarzania danych w czasie zbliżonym do rzeczywistego za pomocą Apache Hadoop

  2. Instrukcje:testowanie aplikacji HBase przy użyciu popularnych narzędzi

  3. Zrozumienie funkcji wysokiej dostępności Hadoop

  4. Instrukcje:korzystanie z interfejsu HBase Thrift, część 2:Wstawianie/pobieranie wierszy

  5. Tworzenie otwartego standardu:zarządzanie uczeniem maszynowym za pomocą Apache Atlas