الگوریتم نگاشت - کاهش یا MapReduce

روند کار الگوریتم MapReduce (نگاشت-کاهش)

الگوریتم نگاشت - کاهش یا MapReduce

27/1/28

یک برنامه mapreduce از یک روش نقشه (یا روش)، که فیلتر کردن و مرتب‌سازی را انجام می‌دهد (مانند مرتب‌سازی دانش آموزان با اولین نام در صف، یک صف برای هر نام)، و یک روش کاهش که یک عمل خلاصه را انجام می‌دهد (مانند شمارش تعداد دانش آموزان در هر صف، با فرکانس‌های نام کوچک). سیستم "mapreduce" (همچنین "زیرساختار" یا "چارچوب")پردازش توسط هدایت سرورهای توزیع‌شده، اجرای وظایف مختلف موازی، مدیریت همه ارتباطات و نقل داده‌ها بین بخش‌های مختلف سیستم و فراهم آوردن افزونگی و تحمل خطا نامیده می‌شود.

 

mapreduce یک تکنیک پردازش و یک مدل برنامه برای محاسبه توزیع‌شده مبتنی بر جاوا است. الگوریتم mapreduce شامل دو وظیفه مهم یعنی نقشه و کاهش است. این نقشه مجموعه‌ای از داده‌ها را به خود می‌گیرد و آن را به مجموعه دیگری از داده‌ها تبدیل می‌کند که در آن عناصر فردی به چند tuples تقسیم می‌شوند (زوج‌های کلید / مقدار). دوم، کار را کاهش می‌دهد، که خروجی را از یک نقشه به عنوان ورودی می‌گیرد و آن tuples داده‌ها را در مجموعه کوچکتری از چند tuples ترکیب می‌کند. همانطور که توالی نام mapreduce نشان می‌دهد، کار کاهش همیشه بعد از کار نقشه انجام می‌شود.
 

مزیت اصلی الگوریتم MapReduce این است که پردازش داده‌ها در مقایسه با چندین گره محاسباتی آسان است. تحت مدل mapreduce، پردازش اطلاعات اولیه mappers و reducers نامیده می‌شوند. decomposing یک کاربرد پردازش داده در mappers و reducers گاهی اوقات nontrivial است. اما، زمانی که ما یک کاربرد را در فرم mapreduce می‌نویسیم، مقیاس بندی برنامه برای اداره کردن صدها، هزارها، یا حتی ده‌ها هزار ماشین در یک خوشه صرفا یک تغییر پیکربندی است. این مقیاس پذیری ساده چیزی است که بسیاری از برنامه نویسان را به استفاده از مدل mapreduce جذب کرده‌است.


 

الگوریتم MapReduce 


بطور کلی نمونه mapreduce مبتنی بر ارسال رایانه به جایی است که داده‌ها در آن ساکن هستند!

برنامه mapreduce در سه مرحله به نام‌های مرحله نگاشت، مرحله انتقال، و کاهش اجرا می‌شود.
 

مرحله نگاشت 


وظیفه یا وظیفه نگارنده این است که داده‌های ورودی را پردازش کند. به طور کلی داده ورودی به شکل فایل یا دایرکتوری است و در سیستم فایل هادوپ ذخیره می‌شود (HDFS). فایل ورودی به خط تابع mapper با خط انتقال داده می‌شود. نگارنده داده‌ها را پردازش می‌کند و چندین قسمت از داده‌ها را ایجاد می‌کند

مرحله کاهش


 این مرحله ترکیبی از مرحله تصادفی و مرحله کاهش است. وظیفه مرحله‌ی کاهش، پردازش اطلاعاتی است که از نگارنده گرفته شده‌است. پس از پردازش، مجموعه جدیدی از خروجی تولید می‌شود که در HDFS ذخیره خواهد شد.

 

در طی یک وظیفه نگاشت-کاهش، Hadoop نتیجه‌ی نگاشت را می‌فرستد و الگوریتم کاهش، وظایف را به سرورهای مناسب در خوشه می‌دهد.

این فریم‌ورک تمام جزییات مربوط به عبور داده از قبیل صدور وظایف، بررسی تکمیل کار و کپی کردن داده‌ها در اطراف خوشه بین گره‌ها را مدیریت می‌کند.

اکثر محاسبات روی نودها با داده روی دیسک‌های موضعی رخ می‌دهد که ترافیک شبکه را کاهش می‌دهد.

پس از تکمیل وظایف داده‌شده، خوشه جمع‌آوری و کاهش داده تا یک نتیجه مناسب را شکل دهد، و آن را به کارگزار Hadoop باز می‌گرداند.

 

 

MapReduce Algorithm