MapReduce qanday ishlaydi va ma'lumotlar ishchilarga qanday tarqatiladi va natijalar qanday birlashtiriladi?
sobes.tech AI
AIdan javob
MapReduce — bu katta ma'lumotlarni tarqatilgan muhitda qayta ishlash uchun mo'ljallangan dasturlash modeli. U ikki asosiy bosqichdan iborat: Map (xaritalash) va Reduce (kamaytirish).
-
Map: kirish ma'lumotlari bo'laklarga bo'linadi va ishchilarga (tugunlarga) tarqatiladi. Har bir ishchi o'z ma'lumotlar qismiga Map funksiyasini qo'llaydi va kirish yozuvlarini kalit-qiymat juftlariga aylantiradi.
-
Shuffle and Sort: Map bosqichining natijalari kalitlar bo'yicha guruhlanadi va saralanadi. Bu operatsiya barcha bir xil kalitga ega qiymatlarning bir xil ishchiga kelishini ta'minlaydi.
-
Reduce: har bir ishchi ma'lum bir kalit uchun qiymatlar guruhini oladi va Reduce funksiyasini qo'llab, bu qiymatlarni yakuniy natijaga birlashtiradi.
Ma'lumotlarni tarqatish fayl tizimi (masalan, HDFS) orqali amalga oshiriladi, u ma'lumotlarni bloklarga bo'lib, ularni ishchilarga tayinlaydi. Map bosqichidan so'ng, vaqtinchalik ma'lumotlar tarmoq orqali Reduce ishchilariga uzatiladi va yig'ish amalga oshiriladi.
Misol: katta matndagi so'zlar sonini hisoblash.
// Map funksiyasi
map(String key, String value) {
for (String word : value.split(" ")) {
emit(word, 1);
}
}
// Reduce funksiyasi
reduce(String key, Iterator<Integer> values) {
int sum = 0;
while (values.hasNext()) {
sum += values.next();
}
emit(key, sum);
}
Shu tarzda, MapReduce katta ma'lumotlarni samarali tarzda parallel ravishda ishlash imkonini beradi.