Чӣ гуна MapReduce кор мекунад ва додаҳо чӣ гуна тақсим мешаванд ба коргарон ва натиҷаҳо чӣ гуна муттаҳид мешаванд?
sobes.tech AI
Ҷавоб аз AI
МапРеуз — моделии барномаи барои коркарди миқдори калонтарини маълумот дар муҳити тақсимшуда. Он аз ду марҳилаи асосӣ иборат аст: Map (харита) ва Reduce (камтар кардан).
-
Map: маълумоти воридотӣ ба қисмҳо тақсим шуда, байни коргарон (нодҳо) тақсим карда мешаванд. Ҳар як коргар функсияи Map-ро ба қисми маълумоти худ татбиқ мекунад, сабтҳои воридотиро ба ҷуфтҳои калид-арзиш табдил медиҳад.
-
Shuffle and Sort: натиҷаҳои марҳилаи Map ба рӯйхати калидҳо гурӯҳбандӣ ва ба тартиб дароварда мешаванд. Ин амалиёт кафолат медиҳад, ки ҳама арзишҳо бо як калид ба як коргар барои Reduce мерасанд.
-
Reduce: ҳар як коргар гурӯҳи арзишҳоро барои калиди муайян мегирад ва функсияи Reduce-ро татбиқ мекунад, ин арзишҳоро ба натиҷаи ниҳоӣ муттаҳид мекунад.
Тақсимоти маълумот тавассути системаи файл (масалан, HDFS) сурат мегирад, ки маълумотро ба блокҳо тақсим мекунад ва онҳоро ба коргарон таъин мекунад. Пас аз марҳилаи Map, маълумоти миёнаравӣ тавассути шабака ба коргарони Reduce интиқол дода мешавад, ки дар он ҷамъоварӣ сурат мегирад.
Масалан: ҳисоб кардани шумораи калимаҳо дар матни калон.
// Функсияи Map
map(String key, String value) {
for (String word : value.split(" ")) {
emit(word, 1);
}
}
// Функсияи Reduce
reduce(String key, Iterator<Integer> values) {
int sum = 0;
while (values.hasNext()) {
sum += values.next();
}
emit(key, sum);
}
Ин тариқ, MapReduce имкон медиҳад, ки маълумоти калонро ба таври самаранок дар параллел дар кластер коркард кунад.