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

Mapa HadoopReduce Schemat wykonywania zadań

W tym Hadoop blogu, zamierzamy zapewnić Ci kompleksowy przepływ wykonywania zadań MapReduce. Tutaj szczegółowo opiszemy każdy komponent, który jest częścią MapReduce.

Ten blog pomoże Ci odpowiedzieć na pytanie, jak działa Hadoop MapReduce, jak przepływa dane w MapReduce, jak zadanie Mapreduce jest wykonywane w Hadoop?

Co to jest MapReduce?

Hadoop MapReduce to warstwa przetwarzania danych. Przetwarza ogromną ilość uporządkowanych i nieustrukturyzowanych danych przechowywanych w HDFS. MapReduce przetwarza dane równolegle, dzieląc zadanie na zestaw niezależnych zadań. Tak więc przetwarzanie równoległe poprawia szybkość i niezawodność.

Przetwarzanie danych Hadoop MapReduce odbywa się w 2 fazach - w fazie mapowania i redukcji.

  • Faza mapy- To pierwsza faza przetwarzania danych. W tej fazie określamy całą złożoną logikę/reguły biznesowe/kosztowny kod.
  • Faza redukcji- To druga faza przetwarzania. W tej fazie określamy lekkie przetwarzanie, takie jak agregacja/sumowanie.

Kroki procesu wykonywania zadania MapReduce

MapReduce przetwarza dane w różnych fazach za pomocą różnych komponentów. Omówmy etapy wykonywania zadań w Hadoop.

1. Pliki wejściowe

W plikach wejściowych przechowywane są dane dla zadania MapReduce. WHDFS , znajdują się pliki wejściowe. Format plików wejściowych jest dowolny. Można również używać plików dziennika opartych na wierszach i formatu binarnego.

2. InputFormat

Następnie InputFormat definiuje sposób dzielenia i odczytywania tych plików wejściowych. Wybiera pliki lub inne obiekty do wprowadzenia. InputFormat tworzy InputSplit.

3. InputSplits

Reprezentuje dane, które będą przetwarzane przez indywidualnego mapującego . Dla każdego podziału tworzone jest jedno zadanie mapy. Tak więc liczba zadań mapy jest równa liczbie InputSplits. Framework dzieli się na rekordy, które przetwarzają.

4. RekordReader

Komunikuje się z inputSplit. A następnie konwertuje dane na pary klucz-wartość nadaje się do czytania przez Mappera. RecordReader domyślnie używa TextInputFormat do konwersji danych na parę klucz-wartość.

Komunikuje się z InputSplit aż do zakończenia odczytu pliku. Przypisuje offset bajtowy do każdego wiersza obecnego w pliku. Następnie te pary klucz-wartość są dalej wysyłane do programu mapującego w celu dalszego przetwarzania.

5. Twórca map

Przetwarza rekord wejściowy utworzony przez RecordReader i generuje pośrednie pary klucz-wartość. Wyjście pośrednie jest zupełnie inne niż para wejściowa. Wynikiem działania mapowania jest pełna kolekcja par klucz-wartość.

Framework Hadoop nie przechowuje danych wyjściowych mapera na HDFS. Nie przechowuje, ponieważ dane są tymczasowe, a pisanie na HDFS spowoduje utworzenie niepotrzebnych wielu kopii. Następnie Mapper przekazuje dane wyjściowe do programu łączącego w celu dalszego przetwarzania.

4. Łącznik

Combiner to mini-reduktor, który wykonuje lokalną agregację na wyjściu mapera. Minimalizuje transfer danych między maperem a reduktorem. Tak więc, gdy funkcja łączenia zostanie zakończona, framework przekazuje dane wyjściowe do partycjonera w celu dalszego przetwarzania.

5. Partycjonowanie

Partitioner powstaje, jeśli pracujemy z więcej niż jednym reduktorem. Pobiera wyjście sumatora i przeprowadza partycjonowanie.

Partycjonowanie wyjścia odbywa się na podstawie klucza w MapReduce. Za pomocą funkcji mieszającej klucz (lub podzbiór klucza) wyprowadza partycję.

Na podstawie wartości klucza w MapReduce następuje partycjonowanie każdego wyniku łączenia. A następnie rekord o tej samej wartości klucza trafia do tej samej partycji. Następnie każda partycja jest wysyłana do reduktora.

Partycjonowanie w wykonaniu MapReduce umożliwia równomierne rozłożenie danych wyjściowych mapy na reduktor.

6. Tasowanie i sortowanie

Po partycjonowaniu dane wyjściowe są tasowane do węzła redukcji. Tasowanie to fizyczny ruch danych, który odbywa się w sieci. Ponieważ wszystkie programy mapujące kończą i przetasowują dane wyjściowe w węzłach redukujących.

Następnie framework łączy to pośrednie wyjście i sortowanie. Jest to następnie dostarczane jako dane wejściowe w celu zmniejszenia fazy.

7. Reduktor

Reduktor następnie pobiera jako dane wejściowe zestaw pośrednich par klucz-wartość tworzonych przez programy mapujące. Następnie uruchamia na każdym z nich funkcję redukcji, aby wygenerować dane wyjściowe.

Wyjście reduktora jest wyjściem końcowym. Następnie framework przechowuje dane wyjściowe w HDFS.

8. Rekordzista

Zapisuje tę wyjściową parę klucz-wartość z fazy Reduktora do plików wyjściowych.

9. Format wyjściowy

OutputFormat definiuje sposób, w jaki RecordReader zapisuje te wyjściowe pary klucz-wartość w plikach wyjściowych. Tak więc jego instancje dostarczane przez pliki Hadoop zapisują w HDFS. W ten sposób instancje OutputFormat zapisują końcowe dane wyjściowe reduktora na HDFS.

Wniosek

Nauczyliśmy się krok po kroku przepływu pracy MapReduce. Mam nadzieję, że ten blog pomoże ci w zrozumieniu działania MapReduce.

Jeśli nadal masz jakieś zapytanie dotyczące przepływu pracy MapReduce, możesz podzielić się z nami w sekcji komentarzy podanej poniżej. Postaramy się jak najlepiej je rozwiązać.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Wszystkiego najlepszego Apache HBase! 10 lat odporności, stabilności i wydajności

  2. Wdrażanie aplikacji w operacyjnej bazie danych CDP (COD)

  3. How-to:Dodaj Cloudera Search do swojego klastra za pomocą Cloudera Manager

  4. Ekosystem Hadoop — wprowadzenie do komponentów Hadoop

  5. 10 najważniejszych funkcji Big Data Hadoop