Kuidas töötab MapReduce ja kuidas jagunevad andmed töötajate vahel ning kuidas tulemused ühendatakse?
sobes.tech AI
Vastus AI-lt
MapReduce on programmeerimismudel, mis on mõeldud suurte andmemahtude töötlemiseks jaotatud keskkonnas. See koosneb kahest peamisest etapist: Map (kaardistamine) ja Reduce (vähendamine).
-
Map: sisendandmed jagatakse osadeks ja jaotatakse töötlejate ( sõlmede) vahel. Iga töötleja rakendab Map funktsiooni oma andmeosale, muutes sisestuskirjed võtme-väärtuse paarideks.
-
Shuffle and Sort: Map faasi tulemused grupeeritakse võtmete järgi ja sorteeritakse. See operatsioon tagab, et kõik sama võtmega väärtused jõuavad samale töötlejale Reduce faasis.
-
Reduce: iga töötleja saab teatud võtme väärtuste grupi ja rakendab Reduce funktsiooni, ühendades need väärtused lõpptulemuseks.
Andmete jaotamine toimub failisüsteemi (näiteks HDFS) kaudu, mis jagab andmed plokkideks ja määrab need töötlejatele. Pärast Map faasi edastatakse vaheandmed võrgu kaudu Reduce töötlejatele, kus toimub kogumine.
Näide: suurte tekstide sõnade arvu arvutamine.
// Map funktsioon
map(String key, String value) {
for (String word : value.split(" ")) {
emit(word, 1);
}
}
// Reduce funktsioon
reduce(String key, Iterator<Integer> values) {
int sum = 0;
while (values.hasNext()) {
sum += values.next();
}
emit(key, sum);
}
Sellisel viisil võimaldab MapReduce tõhusalt töödelda suuri andmekoguseid paralleelselt klastris.