Ինչպես է աշխատում MapReduce-ը և ինչպես են տվյալները բաժանվում աշխատողներին և արդյունքները միավորվում:
sobes.tech AI
Պատասխան AI-ից
MapReduce-ը ծրագրավորման մոդել է, որը նախատեսված է մեծ տվյալների բեռների մշակման համար բաշխված միջավայրում: Այն բաղկացած է երկու հիմնական փուլերից՝ 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-ը հնարավորություն է տալիս արդյունավետորեն մշակել մեծ տվյալներ՝ միաժամանակյա աշխատանքով՝ կլաստերում։