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

Hadoop RecordReader Wstęp, Working &Rodzaje

W poprzednim blogu, badaliśmy Hadoop Liczniki szczegółowo. Teraz w tym tutorialu, będziemy omawiać RecordReader w Hadoop.

Tutaj będziemy obejmować wprowadzenie do Hadoop RecordReader, pracując z RecordReader. Będziemy także dyskutować rodzaje RecordReader w MapReduce, rozmiar pojedynczego rekordu w Hadoop MapReduce MapReduce w tym samouczku.

Czym jest RecordReader w MapReduce?

RecordReader konwertuje pogląd bajt zorientowanych na wejściu do widoku rekordu zorientowanych na Mapper i Reduktor zadania przetwarzania.

Aby zrozumieć Hadoop RecordReader, musimy zrozumieć MapReduce przepływu danych. Nauczmy się jak przepływ danych:

MapReduce to prosty model przetwarzania danych. Wejścia i wyjścia na mapie i zmniejszyć funkcje są pary klucz-wartość . Poniżej znajduje się ogólna forma mapie i zmniejszyć funkcje:

  • Mapa (K1, V1) → lista (K2, V2)
  • Zmniejsz: (K2, lista (V2)) → lista (K3, V3)

Teraz przed rozpoczęciem przetwarzania, to musi wiedzieć, na jakie dane procesu. Tak, InputFormat klasa pomaga to osiągnąć. Ta klasa wybiera plik z HDFS że jest wejście do funkcji mapy. Jest również odpowiedzialny za tworzenie podziałów wejściowych.

Ponadto, podzielić je na rekordy. Dzieli dane do liczby podziałów (zwykle 64 / 128mb) w HDFS. Jest to znane jako InputSplit. InputSplit jest logiczną reprezentacją danych. W pracy MapReduce, numer wykonanie zadań map jest równa liczbie InputSplits.

Wywołując 'getSplit () klient oblicza szpagat do pracy. Potem wysłał do pana aplikacji. Używa ich lokalizacje do przechowywania map harmonogram zadań, które przetwarzają je na klastrze.

Po tym zadaniem mapa przechodzi split do createRecordReader () metoda. Z tym, że uzyskuje RecordReader do rozłamu. RecordReader generuje rekord (parę klucz-wartość). Następnie przechodzi do funkcji mapy.

Hadoop RecordReader w MapReduce wykonywania pracy wykorzystuje dane w granicach, które są tworzone przez inputsplit. A następnie tworzy par klucz-wartość dla elementu odwzorowującego. „Start” jest pozycja bajt w pliku.

Na początku, Hadoop RecordReader zaczyna par klucz / wartość wytwórczych. „Koniec” to gdzie RecorReader zatrzymuje czytanie rekordy. W RecordReader dane są odczytywane z jego źródła.

Następnie dane są przetwarzane w pary klucza wartości odpowiednich do odczytywania za pomocą mapowania. Komunikuje się z inputsplit aż odczyt pliku nie jest zakończona.

Jak RecorReader pracuje w Hadoop?

Jest to więcej niż iteracyjnej nad ewidencji. Zadaniem mapa wykorzystuje jeden rekord do generowania pary klucz-wartość, które są przekazywane do funkcji mapy. Możemy także zobaczyć przy użyciu funkcji Uruchom Mapper jest podana poniżej:

public void run(Context context ) throws IOException, InterruptedException{
setup(context);
while(context.nextKeyValue())
{
map(context.setCurrentKey(),context.getCurrentValue(),context)
}
cleanup(context);
}

Chociaż nie jest to obowiązkowe dla RecordReader pobytów w granicach między utworzonymi przez inputsplit do generowania par klucz-wartość to zwykle pobyty. Ponadto, realizacja niestandardowych można nawet przeczytać więcej danych zewnątrz inputsplit.

Następnie, po uruchomieniu setup () , nextKeyValue () powtórzy kontekstu. Ten zapełnia klucz i wartość przedmiotów dla odwzorowującego. W drodze kontekście ram pobiera klucz-wartość z rekordu czytelnika. Następnie przechodzimy do sekcji Mapa () Sposób zrobić swoją pracę.

Stąd wejście (klucz-wartość) do procesów funkcyjnych mapa jak na logice wymienione w kodzie mapy. Gdy płyta dostaje się do końca rekordu, nextKeyValue () metoda zwraca false.

Rodzaje Hadoop RecordReader

InputFormat określa wystąpienie RecordReader w Hadoop. Domyślnie za pomocą TextInputFormat ReordReader konwertuje dane do par klucz-wartość. TextInputFormat również 2 typy RecordReaders która wygląda następująco:

1. LineRecordReader

Jest to domyślny RecordReader. TextInputFormat zapewnia to RecordReader. Traktuje to również każdy wiersz pliku wejściowego jako nową wartość. Następnie klucz związany jest offset bajtowy. To zawsze pomija pierwszy wiersz w Split (lub jego część), jeśli nie jest to pierwszy rozłam.

Zawsze czyta jedną linię po granicy rozłamu w końcu (jeśli dane są dostępne, więc to nie jest ostatni split).

2. SequenceFileRecordReader

Ten Hadoop RecorReader odczytuje dane określone przez nagłówku pliku sekwencji.

Maksymalna wielkość pojedynczego rekordu

Za pomocą parametru poniżej ustawiamy maksymalną wartość.

conf.setInt("mapred.linerecordreader.maxlength", Integer.MAX_VALUE);

Wniosek

Podsumowując, Hadoop RecorReader tworzy wejście (klucz-wartość) do mapowania. Wykorzystuje również TextInputFormat do konwersji danych do pary klucz-wartość.

Mam nadzieję, że podobał mi się ten blog, jeśli masz jakiekolwiek pytania związane z Hadoop RecordReader, nie krępuj się z nami podzielić. Będziemy zadowoleni, aby je rozwiązać.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Administracja operacyjną bazą danych

  2. Cloudera Impala:zapytania w czasie rzeczywistym w Apache Hadoop, na serio

  3. Tworzenie aplikacji do uczenia maszynowego za pomocą środowiska pracy i operacyjnej bazy danych Cloudera Data Science, część 1:Konfiguracja i podstawy

  4. Apache HBase Co robić i czego nie robić

  5. 6 najlepszych technik optymalizacji pracy MapReduce