Sobes.tech
Middle

Ինչպես է աշխատում MapReduce-ը և ինչպես են տվյալները բաժանվում աշխատողներին և արդյունքները միավորվում:

sobes.tech AI

Պատասխան AI-ից

MapReduce-ը ծրագրավորման մոդել է, որը նախատեսված է մեծ տվյալների բեռների մշակման համար բաշխված միջավայրում: Այն բաղկացած է երկու հիմնական փուլերից՝ Map (քարտեզագրում) և Reduce (կրճատում):

  1. Map: մուտքային տվյալները բաժանվում են մասերի և բաշխվում են աշխատողների (համակարգերի) միջև: Յուրաքանչյուր աշխատող կիրառում է Map ֆունկցիան իր տվյալների մասի վրա, վերածելով մուտքային գրառումները բանալու-արժեք զույգերի:

  2. Shuffle and Sort: Map փուլի արդյունքները խմբագրվում են ըստ բանալիների և դասակարգվում: Այս գործողությունը ապահովում է, որ բոլոր նույն բանալու արժեքները հասնեն նույն աշխատողին Reduce փուլի համար:

  3. 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-ը հնարավորություն է տալիս արդյունավետորեն մշակել մեծ տվյալներ՝ միաժամանակյա աշխատանքով՝ կլաստերում։