منوهای نصب در پنل مدیریت

  • ورود
  • هیچ محصولی در سبد خرید نیست.

Hadoop چیست؟ ( Map – Reduce )


در ادامه قسمت قبل مقاله میخواهیم معماری MapReduce را مورد بررسی قرار دهیم. (Map Reduce)

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

نگاهی تخصصی به معماری Map – Reduce :

این مدل برنامه نویسی که MapReduce نام دارد، محاسبات بزرگ توزیع شده را به صورت دنباله ای از عملیات‌های توزیع شده بر روی مجموعه داده ای از زوج های key/value  (کلید/مقدار) ارائه میدهد.

فریمورک Map-Reduce هدوپ، یک خوشه از کامیپوتر‌ها (ماشین ها) را به اختیار خود گرفته و کارهای Map-Reduce که توسط کاربر تعریف شده را بر روی Node های این خوشه اجرا میکند.

محاسبات Map – Reduce دو فاز دارد، فاز map یا نگاشت و فاز Reduce یا کاهش. ورودی این محاسبات یک جفت key/value (کلید/مقدار) است.

در فاز نگاشت (Map) فریمورک داده ورودی را به تعداد زیادی قطعه تقسیم کرده و هر قطعه به یک کار(task) نگاشت اختصاص می‌یابد. فریمورک Task های Map را بین node های یک خوشه برای اجرا توزیع میکند. هر Task نگاشت از زوج کلید/مقدار بخش تخصیص یافته‌اش استفاده کرده و مجموعه ای از زوج های میانی کلید/مقدار را تولید میکند. برای هر زوج کلید/مقدار (K,V)  کار(Task) نگاشت (Map) یک تابع Map تعریف شده توسط کاربر را صدا میزند که ورودی را به زوج کلید/مقدار متفاوتی بدهد.(K’,V’)

نگاشت کاهش

به دنبال فاز map،فریمورک، داده‌های میانی را با توجه به کلید مرتب‌سازی می‌کند و مجموعه‌ای از چندتایی‌های (K’ , V’ *) تولید می‌کند تا تمام مقادیر مربوط به یک کلید مشخص، با هم نشان داده شوند. فریمورک همچنین مجموعه چندتایی‌ها را به چندین قطعه برابر با تعداد وظیفه‌های(Tasks)  reduce تقسیم می‌کند.

در فاز reduce، هر کار(Task) reduce قطعه شامل چندتایی (K’ , V’ *) اختصاص داده شده به خود را مصرف می‌کند. برای هر چندتایی، هر کار(Task)  reduce یک تابع reduce تعریف شده توسط کاربر را صدا می‌زند که چندتایی را به یک خروجی زوج کلید/مقدار (K, V) تبدیل می‌کند. یک بار دیگر، فریمورک کار(Task)‌های reduce فراوانی را بر روی Node های خوشه توزیع کرده و قطعه مناسب داده میانی را به هر کار(Task) reduce منتقل می‌کند.

کارها(Tasks) در هر فاز به صورت تحمل‌پذیر در مقابل خطا اجرا می‌شوند.

اگر گره‌ای(Node) در بین محاسبه دچار خرابی شود، Task تخصیص یافته به آن در بین Node ‌های باقی‌مانده باز-توزیع می‌شود. داشتن Task‌های زیاد map و reduce باعث توزیع مناسب بار شده و اجازه می‌دهد تا Task‌های ناموفق با سربار زمانی کم دوباره اجرا شوند.


فریمورک Map/Reduce هدوپ دارای یک معماری master/slave (ارباب/برده) است. این فریمورک دارای یک سرور ارباب به نام jobtracker (دنبال‌کننده‌ کار) و سرورهای برده متعدد به نام tasktracker (دنبال‌کننده Task یا وظیفه)، به ازای هر Node در خوشه است.

 Jobtracker نقطه تعامل بین کاربران و فریمورک است. کاربران کارهای map/reduce را به jobtracker تحویل می‌دهند، که jobtracker این کارها را در یک صف از کارهای معلق قرار داده و آنها را بر اساس اصل first come/first service (هر که سریع‌تر آمده، سریع‌تر اجرا می‌شود) اجرا می‌کند.

map - reduce

jobtracker تخصیص کار‌های map و reduce به tasktrackerها را مدیریت می‌کند  tasktrackerها، کار‌ها را بر اساس دستورالعمل jobtracker اجرا کرده و همچنین مسئولیت حرکت داده بین فازهای map و reduce را بر عهده می‌گیرند.

مقاله پیشنهادی: Hadoop چیست؟

تیر ۱۲, ۱۳۹۹

۰ پاسخ به "Hadoop چیست؟ ( Map – Reduce )"

ارسال یک پیام

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

X