MapReduce

از OCCC Wiki
پرش به ناوبری پرش به جستجو

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

در هنگام انجام پردازش با MapReduce، بصورت خودکار، داده های ورودی به چندین بلوک شکسته می شوند که هر بلوک توسط یک تابع map() پردازش می شود و سپس نتایج تمامی توابع map، بعنوان ورودی به تابع reduce() ارجاع داده شده و توسط تابع reduce() ترکیب می شوند.

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


لینک های مرتبط