W tym samouczku Hadoop wyjaśnimy Ci koncepcję lokalizacji danych w Hadoop.
Przede wszystkim zobaczymy wprowadzenie do lokalizacji danych MapReduce w Hadoop, a następnie omówimy potrzebę lokalizacji danych Hadoop z kategoriami lokalizacji danych w MapReduce, Optymalizacja lokalizacji danych.
Nareszcie zobaczymy zalety zasady Hadoop Data Locality w tym samouczku MapReduce.
Co to jest lokalizacja danych w Hadoop MapReduce?
Lokalizacja danych w Hadoop to proces przenoszenia obliczeń blisko miejsca, w którym znajdują się rzeczywiste dane, zamiast przenoszenia dużych danych do obliczeń. Minimalizuje to ogólne przeciążenie sieci. Zwiększa to również ogólną przepustowość systemu.
Główna wada Hadoopa był ruch sieciowy typu cross-switch ze względu na ogromną ilość danych. Aby przezwyciężyć tę wadę, powstała Data Locality.
W Hadoop HDFS przechowuje zbiory danych. Framework dzieli zestawy danych na bloki i przechowuje je w węzłach danych. Gdy klient uruchamia zadanie MapReduce, NameNode wysyła kod MapReduce do węzłów danych, na których dane są dostępne zgodnie z zadaniem MapReduce.
Wymaganie lokalizacji danych Hadoop
Architektura Hadoop musi spełniać poniższe warunki, aby czerpać korzyści ze wszystkich zalet lokalizacji danych:
- Po pierwsze, klaster Hadoop powinien mieć odpowiednią topologię. Kod Hadoop powinien mieć możliwość odczytywania lokalizacji danych.
- Po drugie, Apache Hadoop powinien mieć świadomość topologii węzłów, w których wykonywane są zadania. Hadoop powinien również wiedzieć, gdzie znajdują się dane.
Kategorie lokalizacji danych w Hadoop
Różne kategorie w lokalizacji danych Hadoop są następujące:
1. Dane lokalna lokalizacja danych w Hadoop
W tym przypadku dane znajdują się w tym samym węźle, co mapper pracy na danych. W tym przypadku bliskość danych jest bardzo bliska obliczeń. Najkorzystniejszym scenariuszem jest lokalizacja danych lokalnych.
2. Lokalizacja danych wewnątrz szafy w Hadoop
Ponieważ wiemy, że nie zawsze jest możliwe wykonanie mapera na tym samym węźle danych ze względu na ograniczenia zasobów. W takim przypadku preferowane jest uruchamianie mappera w innym węźle, ale w tym samym stojaku.
3. Lokalizacja danych między szafami w Hadoop
Czasami nie jest również możliwe wykonanie mappera na innym węźle w tej samej szafie. W takiej sytuacji wykonamy mapper na węzłach na różnych stojakach. Najmniej preferowanym scenariuszem jest lokalizacja danych między szafami.
Optymalizacja lokalizacji danych Hadoop
Ponieważ lokalizacja danych jest główną zaletą Hadoop MapaReduce. Jednak w praktyce nie zawsze jest to korzystne z różnych powodów, takich jak heterogeniczny klaster, wykonanie spekulacyjne, dystrybucja i rozmieszczenie danych oraz układ danych.
W dużych klastrach wyzwania stają się bardziej powszechne. Ponieważ w dużym klastrze jest większa liczba węzłów danych i danych, tym mniejsza jest lokalizacja.
W większych klastrach niektóre węzły są nowsze i szybsze niż inne, co powoduje niezrównoważenie stosunku danych do obliczeń. W związku z tym duże klastry zwykle nie są całkowicie jednorodne.
W wykonaniu spekulacyjnym Hadoop, ponieważ dane mogą nie być lokalne, ale wykorzystują moc obliczeniową. Główna przyczyna leży również w układzie/umieszczeniu danych. Również nielokalne przetwarzanie danych obciąża sieć, co stwarza problemy ze skalowalnością. Dlatego sieć staje się wąskim gardłem.
Możemy również poprawić lokalizację danych, wykrywając najpierw, które zadania uległy degradacji w czasie lub problem z lokalizacją danych. Rozwiązywanie problemów jest bardziej złożone i obejmuje zmianę rozmieszczenia danych i układu danych przy użyciu innego harmonogramu.
Następnie musimy zweryfikować, czy nowe wykonanie tego samego obciążenia ma lepszy współczynnik lokalizacji danych.
Zalety lokalizacji danych w Hadoop
- Wysoka przepustowość – Lokalizacja danych w Hadoop zwiększa ogólną przepustowość systemu.
- Szybsze wykonanie – W lokalizacji danych struktura przenosi kod do węzła, w którym znajdują się dane, zamiast przenosić duże dane do węzła. Dzięki temu Hadoop jest szybszy. Ponieważ rozmiar programu jest zawsze mniejszy niż rozmiar danych, więc przenoszenie danych jest wąskim gardłem transferu sieciowego.
Wniosek
Podsumowując, lokalizacja danych w usłudze Hadoop poprawia ogólne działanie systemu i przyspiesza działanie usługi Hadoop. W związku z tym zmniejsza przeciążenie sieci.
Jeśli uważasz, że ten blog jest pomocny lub masz jakieś pytania, zostaw komentarz w sekcji komentarzy poniżej. Z przyjemnością je rozwiążemy.