Sobes.tech
Middle

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).

  1. 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.

  2. 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.

  3. 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.