Spisu treści:
Definicja - Co oznacza MapReduce?
MapReduce to model programowania wprowadzony przez Google do przetwarzania i generowania dużych zestawów danych w klastrach komputerów.
Google najpierw sformułował platformę w celu obsługi indeksowania stron internetowych Google, a nowa platforma zastąpiła wcześniejsze algorytmy indeksowania. Początkujący programiści uważają, że środowisko MapReduce jest korzystne, ponieważ procedury biblioteczne można wykorzystywać do tworzenia równoległych programów bez obaw o komunikację wewnątrz klastrów, monitorowanie zadań lub proces obsługi awarii.
MapReduce działa na dużym klastrze maszyn towarowych i jest wysoce skalowalny. Ma kilka form implementacji zapewnianych przez wiele języków programowania, takich jak Java, C # i C ++.
Techopedia wyjaśnia MapReduce
Struktura MapReduce składa się z dwóch części:
- Funkcja o nazwie „Mapa”, która pozwala różnym punktom rozproszonego klastra dystrybuować swoją pracę
- Funkcja o nazwie „Reduce”, która została zaprojektowana w celu zmniejszenia ostatecznej postaci wyników klastrów do jednego wyniku
Główną zaletą struktury MapReduce jest jej odporność na awarie, w której oczekuje się okresowych raportów z każdego węzła w klastrze po zakończeniu pracy.
Zadanie jest przenoszone z jednego węzła do drugiego. Jeśli węzeł główny zauważy, że węzeł milczy przez dłuższy czas niż oczekiwano, węzeł główny wykonuje proces ponownego przypisania do zamrożonego / opóźnionego zadania.
Framework MapReduce jest inspirowany funkcjami „Map” i „Reduce” wykorzystywanymi w programowaniu funkcjonalnym. Przetwarzanie obliczeniowe zachodzi na danych przechowywanych w systemie plików lub w bazie danych, która pobiera zestaw wartości klucza wejściowego i tworzy zestaw wartości klucza wyjściowego.
Każdego dnia w klastrach Google wykonywane są liczne programy MapReduce i zadania MapReduce. Programy są automatycznie równoległe i wykonywane na dużym klastrze maszyn towarowych. System wykonawczy zajmuje się partycjonowaniem danych wejściowych, planowaniem wykonania programu na zestawie maszyn, obsługą awarii maszyn i zarządzaniem wymaganą komunikacją między maszynami. Programiści bez doświadczenia w pracy z systemami równoległymi i rozproszonymi mogą z łatwością korzystać z zasobów dużego systemu rozproszonego.
MapReduce jest wykorzystywany w rozproszonym grep, sortowaniu rozproszonym, odwróceniu linków do wykresów, statystykach dziennika dostępu do sieci, grupowaniu dokumentów, uczeniu maszynowym i statystycznym tłumaczeniu maszynowym.